分区索引的操作也有一张表黑黑,如下:
分区索引 | 索引类型 | Range | List | Hash | 组合分区 | 是否带来IO操作 |
增加分区 (addpartition) | 全局 | / | / | 支持 | / | 是 |
本地 | / | / | / | / | ||
删除分区 (droppartition) | 全局 | 支持 | / | / | / | 无 |
本地 | / | / | / | / | ||
修改默认属性 (modifydefaultattributes) | 全局 | 支持 | / | / | / | 无 |
本地 | 支持 | 支持 | 支持 | 支持 | 无 | |
修改分区当前属性 (modifypartition) | 全局 | 支持 | / | / | / | 无 |
本地 | 支持 | 支持 | 支持 | 支持 | 无 | |
重编译分区 (rebuildpartition) | 全局 | 支持 | / | / | / | 有 |
本地 | 支持 | 支持 | 支持 | 支持 | 有 | |
重命名分区 (renamepartition) | 全局 | 支持 | / | / | / | 无 |
本地 | 支持 | 支持 | 支持 | 支持 | 无 | |
分隔分区 (splitpartition) | 全局 | 支持 | / | / | / | 有 |
本地 | / | / | / | / |
另外local索引前头我们多次提到了,其维护会在oracle操作表分区的时候自动进行,需要注意的是global索引,当global索引所在表执行altertable涉及下列操作时,会导至该索引失效:
ØADDPARTITION|SUBPARTITION
ØCOALESCEPARTITION|SUBPARTITION
ØDROPPARTITION|SUBPARTITION
ØEXCHANGEPARTITION|SUBPARTITION
ØMERGEPARTITION|SUBPARTITION
ØMOVEPARTITION|SUBPARTITION
ØSPLITPARTITION|SUBPARTITION
ØTRUNCATEPARTITION|SUBPARTITION
因此,建议用户在执行上述操作sql语句后附加updateindexes子句,oracle即会自动维护全局索引,当然,需要注意这中间有一个平衡,你要平衡操作ddl的时间和重建索引哪个时间更少,以决定是否需要附加updateindexes子句。