【转】Oracle 索引详解

语法:

Table Index
CREATE [UNIQUE|BITMAP] INDEX [schema.]index_name
ON [schema.]table_name[tbl_alias]
(col[ASC | DESC])index_clauseindex_attribs

index_clauses:
分以下两种情况

1. Local Index
就是索引信息的存放位置依赖于父表的Partition信息,换句话说创建这样的索引必须保证父表是Partition
1.1 索引信息存放在父表的分区所在的表空间。但是仅可以创建在父表为HashTable或者composite分区表的。
LOCAL STORE IN (tablespace)
1.2 仅可以创建在父表为HashTable或者composite分区表的。并且指定的分区数目要与父表的分区数目要一致
LOCAL STORE IN(tablespace)
  (PARTITION[partition
       [LOGGING|NOLOGGING]
       [TABLESPACE{tablespace|DEFAULT}]
       [PCTFREEint]
       [PCTUSEDint]
       [INITRANSint]
       [MAXTRANSint]
       [STORAGEstorage_clause]
       [STORE IN{tablespace_name|DEFAULT]
       [SUBPARTITION[subpartition [TABLESPACEtablespace]]]])
 
1.3 索引信息存放在父表的分区所在的表空间,这种语法最简单,也是最常用的分区索引创建方式。
Local

1.4 并且指定的Partition 数目要与父表的Partition要一致
LOCAL (PARTITION[partition
[LOGGING|NOLOGGING]
[TABLESPACE{tablespace|DEFAULT}]
[PCTFREEint]
[PCTUSEDint]
[INITRANSint]
[MAXTRANSint]
[STORAGEstorage_clause]
[STORE IN{tablespace_name|DEFAULT]
[SUBPARTITION[subpartition[TABLESPACEtablespace]]]])
Global Index
索引信息的存放位置与父表的Partition信息完全不相干。甚至父表是不是分区表都无所谓的。语法如下:
GLOBAL PARTITION BY RANGE (col_list)
( PARTITIONpartitionVALUES LESS THAN (value_list)
[LOGGING|NOLOGGING]
[TABLESPACE {tablespace|DEFAULT}]
[PCTFREEint]
[PCTUSEDint]
[INITRANSint]
[MAXTRANSint]
[STORAGEstorage_clause] )
但是在这种情况下,如果父表是分区表,要删除父表的一个分区都必须要更新Global Index ,否则索引信息不正确
ALTER TABLETableNameDROP PARTITIONPartitionNameUpdate Global Indexes
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值