Oracle 分区索引详解
2006-09-05 18:13
661 查看
语法:
TableIndex CREATE[UNIQUE|BITMAP]INDEX[schema.]index_name ON[schema.]table_name[tbl_alias] (col[ASC|DESC])index_clauseindex_attribs
index_clauses:
分以下两种情况
1.LocalIndex
就是索引信息的存放位置依赖于父表的Partition信息,换句话说创建这样的索引必须保证父表是Partition
1.1索引信息存放在父表的分区所在的表空间。但是仅可以创建在父表为HashTable或者composite分区表的。
LOCALSTOREIN(tablespace)
1.2仅可以创建在父表为HashTable或者composite分区表的。并且指定的分区数目要与父表的分区数目要一致 LOCALSTOREIN(tablespace) (PARTITION[partition [LOGGING|NOLOGGING] [TABLESPACE{tablespace|DEFAULT}] [PCTFREEint] [PCTUSEDint] [INITRANSint] [MAXTRANSint] [STORAGEstorage_clause] [STOREIN{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]
[STOREIN{tablespace_name|DEFAULT]
[SUBPARTITION[subpartition[TABLESPACEtablespace]]]])
GlobalIndex
索引信息的存放位置与父表的Partition信息完全不相干。甚至父表是不是分区表都无所谓的。语法如下:GLOBALPARTITIONBYRANGE(col_list)
(PARTITIONpartitionVALUESLESSTHAN(value_list)
[LOGGING|NOLOGGING]
[TABLESPACE{tablespace|DEFAULT}]
[PCTFREEint]
[PCTUSEDint]
[INITRANSint]
[MAXTRANSint]
[STORAGEstorage_clause])
但是在这种情况下,如果父表是分区表,要删除父表的一个分区都必须要更新GlobalIndex,否则索引信息不正确
[code]ALTERTABLETableNameDROPPARTITIONPartitionNameUpdateGlobalIndexes
本人没有深究过在什么情况下,哪种方式更有效。但是个人的感觉是简单的就是最好的
[/code]
相关文章推荐
- 深入oracle分区索引的详解
- 深入oracle分区索引的详解
- ORACLE分区表、分区索引详解(转)
- ORACLE分区表、分区索引详解
- 深入oracle分区索引的详解
- Oracle 分区索引详解
- ORACLE分区表、分区索引详解
- oracle分区表、分区索引详解!
- ORACLE分区表、分区索引详解(转)
- Oracle 分区索引详解
- (转)Oracle 分区索引详解
- Oracle分区索引
- Oracle 索引 详解
- oracle分区索引及循环插入
- MS SQL Server:分区表、分区索引 详解
- Oracle 索引 详解
- ORACLE分区表、分区索引
- MS SQL Server:分区表、分区索引详解
- Oracle中的索引详解 【转】