oracle的全局索引(global)和本地索引(local)

全局索引和表是否为分区表、分区键值没有直接关系。也就是说,可以在非分区表上建立分区索引,在分区表上建立非分区索引。但是,如果建立分区索引,那么分区键必须和索引键相同。


建立测试表:

create table test(
 id int,
 name varchar2(20)

partition by range(id)
( partition p1 values less than (10),
  partition p2 values less than (20),
  partition p3 values less than (maxvalue)

);

可以在测试表上创建如下索引:

create index ig_test_id on test(id) tablespace test
global partition by range(id)
( partition p1 values less than (5),
  partition p2 values less than (30),
  partition p3 values less than (maxvalue)

);

或者

create index ighash_test_id on test(name) tablespace test
global partition by hash(name)
( partition p1,
  partition p2,
  partition p3

);

但是下面这种是错误的:

create index i_test_id on test(name) tablespace test
global partition by range(id)
( partition p1 values less than (5),
  partition p2 values less than (30),
  partition p3 values less than (maxvalue)

);

本地索引必须建在分区表上。索引键和表的分区键不必相同,但是索引的分区键和表的分区键一定相同。


可以按如下方式创建local索引:

create index ig_test_id on test(id) tablespace test local ;
或者
create index ig_test_id on test(name) tablespace test local ;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值