帶您詳細(xì)了解Oracle分區(qū)索引
Oracle分區(qū)索引可能對(duì)于很多剛接觸Oracle數(shù)據(jù)庫(kù)的新人來說,還比較陌生。下面就為您詳細(xì)介紹Oracle分區(qū)索引方面的知識(shí),希望可以讓您對(duì)Oracle分區(qū)索引有更多的了解。
Oracle分區(qū)索引語(yǔ)法:
- Table Index
- CREATE [UNIQUE|BITMAP] INDEX [schema.]index_name
- ON [schema.]table_name [tbl_alias]
- (col [ASC | DESC]) index_clause index_attribs
- index_clauses:
Oracle分區(qū)索引分以下兩種情況
1 Local Index
就是索引信息的存放位置依賴于父表的Partition信息,換句話說創(chuàng)建這樣的索引必須保證父表是Partition
索引信息存放在父表的分區(qū)所在的表空間。但是僅可以創(chuàng)建在父表為HashTable或者composite分區(qū)表的。
LOCAL STORE IN (tablespace)
僅可以創(chuàng)建在父表為HashTable或者composite分區(qū)表的。并且指定的分區(qū)數(shù)目要與父表的分區(qū)數(shù)目要一致
- LOCAL STORE IN (tablespace) (PARTITION [partition [LOGGING|NOLOGGING] [TABLESPACE {tablespace|DEFAULT}] [PCTFREE int] [PCTUSED int] [INITRANS int] [MAXTRANS int] [STORAGE storage_clause] [STORE IN {tablespace_name|DEFAULT] [SUBPARTITION [subpartition [TABLESPACE tablespace]]]])
索引信息存放在父表的分區(qū)所在的表空間,這種語(yǔ)法最簡(jiǎn)單,也是最常用的分區(qū)索引創(chuàng)建方式。
Local
并且指定的Partition 數(shù)目要與父表的Partition要一致
- LOCAL (PARTITION [partition
- [LOGGING|NOLOGGING]
- [TABLESPACE {tablespace|DEFAULT}]
- [PCTFREE int]
- [PCTUSED int]
- [INITRANS int]
- [MAXTRANS int]
- [STORAGE storage_clause]
- [STORE IN {tablespace_name|DEFAULT]
- [SUBPARTITION [subpartition [TABLESPACE tablespace]]]])
2 Global Index
索引信息的存放位置與父表的Partition信息完全不相干。甚至父表是不是分區(qū)表都無(wú)所謂的。語(yǔ)法如下:
- GLOBAL PARTITION BY RANGE (col_list)
- ( PARTITION partition VALUES LESS THAN (value_list)
- [LOGGING|NOLOGGING]
- [TABLESPACE {tablespace|DEFAULT}]
- [PCTFREE int]
- [PCTUSED int]
- [INITRANS int]
- [MAXTRANS int]
- [STORAGE storage_clause] )
但是在這種情況下,如果父表是分區(qū)表,要?jiǎng)h除父表的一個(gè)分區(qū)都必須要更新Global Index ,否則索引信息不正確
- ALTER TABLE TableName DROP PARTITION PartitionName Update Global Indexes
【編輯推薦】
ORACLE系統(tǒng)表和數(shù)據(jù)字典視圖