Oracle 分区索引初步理解

2014-11-24 18:34:50 · 作者: · 浏览: 1

分区索引类型:局部分区索引与全局分区索引。局部分区索引使用与底层表相同的机制分区;全局分区索引使用与底层表不同的机制进行分区,索引按区间或散列对索引进行分区,一个全局索引分区可能指向任何表分区或所有表分区。


对于local索引,每一个表分区对应一个索引分区,当表的分区发生变化时,索引的维护由Oracle自动进行。


对于global索引,可以选择是否分区,而且索引的分区可以不与表分区相对应。当对分区进行维护操作时,通常会导致全局索引的INVALID,必须在执行完操作后 REBUILD。Oracle9i提供了UPDATE GLOBAL INDEXES语句,可以在进行分区维护的同时重建全局索引,UPDATE GLOBAL INDEXES是一种允许用资源耗费的增加来换取可用性的选项。


局部索引比全局索引容易管理,而全局索引比较快。


局部索引多应用于数据仓库环境中,而全局索引多应用于oltp系统中。



局部前缀索引与局部非前缀索引:


如果局部索引的列不是以分区键开头,或者不包含分区键列,则称为非前缀索引。






像下面这样的查询(a为分区键):


Select … from partitioned_table where a=a:aand b=:b;


Select … from partitioned_table where b=:b;


可以考虑在(b,a)上建立局部非前缀索引。而如果在(a,b)上建立局部前缀索引,第二个查询不会走索引。