多语言展示
当前在线:1139今日阅读:84今日分享:32

ORACLE学习记:[1]oracle索引分类rebuild总结

公司平时用到分区表较多,根据年月的复合分区表,每到年末需要做分区扩展,这其中索引(包括普通索引、分区索引)rebuild过程必不可少,结合实践加总结研究,本贴就将索引重建案例总结分享出来
工具/原料
1

PL/SQL Developer

2

editplus

方法/步骤
1

普通B-Tree索引:  普通索引在user_indexes查询status,状态(valid:有效;unusable:失效,N/A:分区索引有效),注意,要查询分区索引有效与否,需要查询另外的表,请参见接下来的内容-->>索引重建SQL:alter index index_name rebuild pararllel 4 nologging;注意:这里的并行,可以不加,如果有条件有需要可根据实际情况设置.

2

分区索引:  -->>查询分区索引是全局分区索引还是本地分区索引,取决于user_part_indexes中locality字段:全局分区索引(LOCAL),本地分区索引(GLOBAL);

3

全局分区索引要么全部USABLE,要么全部UNUSABLE[分区表索引状态也就只有那两种].所以一般不rebuild,便捷的方法是先drop再create.这里主要以本地分区索引为主

4

本地单分区索引   --->>查询分区信息在user_ind_partitions表中查询,复合分区索引状态在这里显示的是N/A,若要确定子分区索引状态在user_ind_subpartitions中查询重建分区索引SQL: Alter index index_name rebuild partition partition_name pararllel 4 nologging;

5

本地复合分区索引:查询分区信息在user_ind_subpartitions表中查询重建子分区索引SQL: Alter index index_name rebuild subpartition subpartition_name  pararllel 4 nologging

注意事项
1

这里只是针对schema级别查询,用的都是user_*,当然也可以DBA级别,dba_*;

2

还有需要注意的是本地复合分区表如果某一分区下多个子分区索引失效,不能简单rebuild该一级分区,而需要逐个rebuild子分区,其实这应该是分区索引的优点所在

推荐信息