国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Oracle > 正文

深入oracle分區索引的詳解

2020-07-26 14:26:24
字體:
來源:轉載
供稿:網友
表可以按range、hash、list分區,表分區后,其上的索引和普通表上的索引有所不同,oracle對于分區表上的索引分為2類,即局部索引和全局索引,下面分別對這2種索引的特點和局限性做個總結。

局部索引local index
1.局部索引一定是分區索引,分區鍵等同于表的分區鍵,分區數等同于表的分區數,一句話,局部索引的分區機制和表的分區機制一樣。
2.如果局部索引的索引列以分區鍵開頭,則稱為前綴局部索引。
3.如果局部索引的列不是以分區鍵開頭,或者不包含分區鍵列,則稱為非前綴索引。
4.局部索引只能依附于分區表上。
5.前綴和非前綴索引都可以支持索引分區消除,前提是查詢的條件中包含索引分區鍵。
6.局部索引只支持分區內的唯一性,無法支持表上的唯一性,因此如果要用局部索引去給表做唯一性約束,則約束中必須要包括分區鍵列。
7.局部分區索引是對單個分區的,每個分區索引只指向一個表分區;全局索引則不然,一個分區索引能指向n個表分區,同時,一個表分區,也可能指向n個索引分區,對分區表中的某個分區做truncate或者move,shrink等,可能會影響到n個全局索引分區,正因為這點,局部分區索引具有更高的可用性。
8.位圖索引只能為局部分區索引。
9.局部索引多應用于數據倉庫環境中。

全局索引global index
1.全局索引的分區鍵和分區數和表的分區鍵和分區數可能都不相同,表和全局索引的分區機制不一樣。
2.全局索引可以分區,也可以是不分區索引,全局索引必須是前綴索引,即全局索引的索引列必須是以索引分區鍵作為其前幾列。
3.全局索引可以依附于分區表;也可以依附于非分區表。
4.全局分區索引的索引條目可能指向若干個分區,因此,對于全局分區索引,即使只截斷一個分區中的數據,都需要rebulid若干個分區甚至是整個索引。
5.全局索引多應用于oltp系統中。
6.全局分區索引只按范圍或者散列分區,hash分區是10g以后才支持。
7.oracle9i以后對分區表做move或者truncate的時可以用update global indexes語句來同步更新全局分區索引,用消耗一定資源來換取高度的可用性。
8.表用a列作分區,索引用b做局部分區索引,若where條件中用b來查詢,那么oracle會掃描所有的表和索引的分區,成本會比分區更高,此時可以考慮用b做全局分區索引。

分區索引字典
DBA_PART_INDEXES
分區索引的概要統計信息,可以得知每個表上有哪些分區索引,分區索引的類型(local/global)
Dba_ind_partitions  每個分區索引的分區級統計信息
Dba_indexes/dba_part_indexes 可以得到每個表上有哪些非分區索引

索引重建
Alter index idx_name rebuild partition index_partition_name [online nologging]
需要對每個分區索引做rebuild,重建的時候可以選擇online(不會鎖定表),或者nologging建立索引的時候不生成日志,加快速度。
Alter index rebuild idx_name [online nologging]
對非分區索引,只能整個index重建
分區索引實例
復制代碼 代碼如下:

--1、建分區表 
CREATE TABLE P_TAB( 
C1 INT, 
C2 VARCHAR2(16), 
C3 VARCHAR2(64), 
C4 INT , 
CONSTRAINT PK_PT 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) 
); 
--2、建全局分區索引 
CREATE INDEX IDX_PT_C4 ON P_TAB(C4) GLOBAL PARTITION BY RANGE(C4) 

PARTITION IP1 VALUES LESS THAN(10000), 
PARTITION IP2 VALUES LESS THAN(20000), 
PARTITION IP3 VALUES LESS THAN(MAXVALUE) 
); 
--3、建本地分區索引 
CREATE INDEX IDX_PT_C2 ON P_TAB(C2) LOCAL (PARTITION P1,PARTITION P2,PARTITION P3,PARTITION P4); 
--4、建全局分區索引(與分區表分區規則相同的列上) 
CREATE INDEX IDX_PT_C1 
ON P_TAB(C1) 
GLOBAL PARTITION BY RANGE (C1) 

PARTITION IP01 VALUES LESS THAN (10000000), 
PARTITION IP02 VALUES LESS THAN (20000000), 
PARTITION IP03 VALUES LESS THAN (30000000), 
PARTITION IP04 VALUES LESS THAN (MAXVALUE) 
); 
--5、分區索引數據字典查看 
SELECT * FROM USER_IND_PARTITIONS; 
SELECT * FROM USER_PART_INDEXES; 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 静乐县| 综艺| 康平县| 柏乡县| 云龙县| 九龙县| 丹阳市| 渑池县| 西林县| 佛坪县| 禹城市| 中牟县| 昭觉县| 潮安县| 个旧市| 瓦房店市| 宜丰县| 邵东县| 汝阳县| 绍兴县| 长治市| 恭城| 阆中市| 太白县| 福建省| 永济市| 苍山县| 航空| 新昌县| 鹤壁市| 龙口市| 鹰潭市| 呈贡县| 宣武区| 阳山县| 汾西县| 宜阳县| 文昌市| 静乐县| 尉氏县| 江津市|