分区索引是个什么情况,怎么不是建在表上的分区字段上?!
例如,创建表:
create table test(
c1 int,
c2 varchar2(16),
c3 varchar2(64),
c4 int
constraint pk_ta_c1 primary key(c1)
)partition by range(c1)(
partition p1 values less than(10000000),
partition p2 values less than(20000000),
partition p3 values less than(30000000),
partition p4 values less than(maxvalue)
);
建立分区索引:
create index idx_test_c2 on test(c2) local (partition p1,partition p2,partition p3,parition p4);
或者create index idx_test_c2 on test(c2) local;
我想问一下,为什么表上是按c1分区,建立的分区索引却是建立在c2字段上?建立分区索引是为了让历史分区索引不用重建,那这个索引不是建立在分区字段上时还能起作用吗?十分不理解啊!!
------解决方案--------------------分区字段,
和索引字段
从概念上没有什么关联
索引可以建立在表的任何字段,表可以分为分区表和普通表
------解决方案--------------------你建立的分区索引(local)当然是跟着每个分区走的
你也可以在分区表上建立全局索引啊(GLOBAL)
------解决方案--------------------各个分区表可以单独建立索引,也可以建立全局索引,互不影响
------解决方案--------------------ORACLE分区表、分区索引
------解决方案--------------------按照哪个字段分区,跟你对哪个字段建立索引,二者之间有什么关系,井水不犯河水的事!