《oracle从入门到精通(PDF格式)》第26章


4。手动分配区:
alter table hr。employees allocate extent(size 500k datafile "filepath");
5。非分区表的重组
alter table owner。table move tablespace space_name;
当表被重组后,它的结构被重组,但内容没有影响;
约束条件不变,但与其对应的索引不存在了,所以重组之后的索引必须重建;
可以被用于移动表到新的表空间或者重组区;
6。删除列:
alter table owner。table_name drop
column col_name cascade constraints checkpoint 1000;
checkpoint 1000 每一千行 执行一次检查点
检查点:完成同步,将写入日志的改变对应的数据写入数据文件中;
从每行中删除掉列占据的长度和数据,释放在数据块中占用的空间。
删除大表中的一列将花费比较长的时间。
7。重命名表中的一列:
alter table owner。table_name
第 68 页,共 106 页 
…………………………………………………………Page 69……………………………………………………………
资源来自网络,仅供学习! Oracle 从入门到精通 
rename column old_name to new_name;
8。标记列不再使用:
alter table owner。table_name
set unused column col_name cascade constraints;
9。删除不使用的列:
alter table owner。table_name
drop unused columns checkpoint 1000;
10。继续列的删除操作:
alter table owner。table_name
drop columns continue checkpoint 1000;
11。得到表的信息:
DBA_TABLES DBA_OBJECTS
22、管理索引(index)
关键字+ROWID,排序!!!
1。索引的分类:
逻辑上:
Single column 单行索引
Concatenated 多行索引
Unique 唯一索引
NonUnique 非唯一索引
Function…based 函数索引
Domain 域索引
物理上:
Partitioned 分区索引
NonPartitioned 非分区索引
B…tree:
Normal 正常型 B 树
Rever Key 反转型 B 树
Bitmap 位图索引
2。索引结构:
B…tree:
适合与大量的增、删、改(OLTP);
第 69 页,共 106 页 
…………………………………………………………Page 70……………………………………………………………
资源来自网络,仅供学习! Oracle 从入门到精通 
不能用包含 OR 操作符的查询;
适合高基数的列(唯一值多)
典型的树状结构;
每个结点都是数据块;
大多都是物理上一层、两层或三层不定,逻辑上三层;
叶子块数据是排序的,从左向右递增;
在分支块和根块中放的是索引的范围;
Bitmap:
适合与决策支持系统;
做 UPDATE 代价非常高;
非常适合 OR操作符的查询;
基数比较少的时候才能建位图索引;
树型结构:
索引头
开始 ROWID,结束 ROWID(先列出索引的最大范围)
BITMAP
每一个 BIT对应着一个 ROWID,它的值是 1 还是0,如果是 1,表示着 BIT对应 
的 ROWID 有值;
3。存储参数:
initial 初始化大小
next 下一个区大小
pctincrease 区大小增量
minextents 最小区数(本地管理)
maxextents 最大区数(本地管理)
4。创建B…TREE索引:
CREATE INDEX owner。index_name
ON owner。table_name(col_list)
PCTFREE n
STORAGE(INITAL nK NEXT nK PCTINCREASE n MAXEXTENTS n )
TABLESPACE space_name;
5。索引PCTFREE的变化:
索引不存在 PCTUSED;
PCTFREE 的含义是为新的插入预留的空间,在索引创建时保留;
在索引中是没有 UPDATE的。
6。创建索引的提示:
平衡查询与 DML 操作的需求,不要建太多的索引;
将索引放在单独的表空间;
使用统一的区大小:5 块的整倍数或表空间的 MINIMUMEXTENT的大小;
第 70 页,共 106 页 
…………………………………………………………Page 71……………………………………………………………
资源来自网络,仅供学习! Oracle 从入门到精通 
对于大的索引考虑使用 NOLOGGING(不产生日志文件,插入时速度快,索引不需要产生日志);
索引的 INITRANS 应该比相应表的 INITRANS 设置的高一些;
7。创建位图索引:
参数: create_bitmap_areasize 在创建位图索引之前为其分配区域。
CREATE BITMAP INDEX owner。index_name
ON owner。table_name(col_list)
PCTFREE 30
STORAGE(INITAL 200K NEXT 200K PCTINCREASE 0 MAXEXTENTS 50)
TABLESPACE space_name;
8。改变索引参数:
alter index index_name storage(NEXT 400K MAXEXTENTS 50);
高水平线(HWM):曾经被使用过的最后一块的位置,当对存储对象进行 TRUNCATE 时,
高水平线才会回到起点。
对全表扫描的时候,读到高水平线为止;
9。重建索引:
移动索引到另外的表空间;
通过清除删除掉的索引记录提高了空间的利用率,改善 PCTFREE 设置不良带来的问题;
alter index index_name rebuild tablespace space_name;
10。在线重建索引:(建议不使用)
alter index index_name rebuild online;
11。合并索引:
alter index index_name coalesce;
只能把同一个分支下的空间合并。
12。删除索引:
在数据做大量数据装载之前删除索引,之后再重建索引;
删除那些很少使用的索引,在需要的时候再创建(月底报表);
删除并重建失效的索引;
删除不需要的索引(备选);
drop index owner。index_name;
13。确定未使用的索引:
开始监视索引的使用:ALTER INDEX index_name MONITORING USAGE;
第 71 页,共 106 页 
…………………………………………………………Page 72……………………………………………………………
资源来自网络,仅供学习! Oracle 从入门到精通 
停止监视索引的使用:ALTER INDEX index_name NOMONITORING USAGE;
14。查看索引信息:
dba_indexes 提供索引的信息
dba_ind_columns 提供索引列的信息
23、管理口令安全和资源
profiles:是命名的口令管理和资源限制的集合;
不是物理上的文件;
小说推荐
返回首页返回目录