分区索引,包括全局分区索引和局部分区索引2种
全局分区索引 : 索引的分区键可以选择跟表的分区键不一致。能用于表的unique与primary约束。 建成后有多个段,每个段代表一个索引分区,每个索引分区中的键值可以指向任何表分区。可以依赖普通的表,也可以依赖分区表建立。可能索引分区数不等于表分区数。只能按range或hash(10g起)对索引分区。全局索引的range分区最后一个分区必须是maxvalue,以保证底层表的所有行都能放到这个索引中。
局部分区索引: 就是local索引
创建全局range分区索引
create index ix_t
ON T_PART_INDEX (CREATE_DATE) GLOBAL
PARTITION BY RANGE (CREATE_DATE)
(PARTITION P1 VALUES LESS THAN (TO_DATE('2008-1-1', 'YYYY-MM-DD')),
PARTITION PMAX VALUES LESS THAN (MAXVALUE));
创建全局hash分区索引
CREATE INDEX IND_a
ON t (PK_EHRSANCTION_OATOHR) GLOBAL
pARTITION BY hash (PK_EHRSANCTION_OATOHR)
PARTITIONS 16;
alter table T
add constraint PK_TR primary key (PK_EHRSANCTION_OATOHR);
select * from all_part_indexes where index_name='IND_A'
分区表t,全局hash分区索引可以作为主键的索引,全局hash分区索引可以分散数据块,用于超大表的全局索引,可以大大减小索引的副作用,特别是dml的成本,在oltp系统常用
另外索引分区和表分区好处类似,可以避免牵一发动全身,和表分区是一个道理,对应用程序是一个整体,但是内部已经分开,更加灵活也好维护