分割槽索引:區域性 locally & 全域性 global
分割槽表上的索引
表可以按range,hash,list 分割槽,表分割槽後,其上的索引和普通表上的索引有所不同,oracle對於分割槽表上的索引分為2類,即區域性索引 和全域性索引 ,下面分別對這2種索引的特點和侷限性做個總結。
區域性索引local index
1. 區域性索引一定是分割槽索引,分割槽鍵等同於表的分割槽鍵,分割槽數等同於表的分割槽說,一句話,區域性索引的分割槽機制和表的分割槽機制一樣。
2. 如果區域性索引的索引列以分割槽鍵開頭,則稱為字首區域性索引。
3. 如果區域性索引的列不是以分割槽鍵開頭,或者不包含分割槽鍵列,則稱為非字首索引。
4. 字首和非字首索引都可以支援索引分割槽消除,前提是查詢的條件中包含索引分割槽鍵。
5. 區域性索引只支援分割槽內的唯一性,無法支援表上的唯一性,因此如果要用區域性索引去給表做唯一性約束,則約束中必須要包括分割槽鍵列。
6. 區域性分割槽索引是對單個分割槽的,每個分割槽索引只指向一個表分割槽,全域性索引則不然,一個分割槽索引能指向n個表分割槽,同時,一個表分割槽,也可能指向n個索引分割槽,對分割槽表中的某個分割槽做truncate或者move,shrink等,可能會影響到n個全域性索引分割槽,正因為這點,區域性分割槽索引具有更高的可用性。
7. 點陣圖索引只能為區域性分割槽索引。
8. 區域性索引多應用於資料倉儲環境中。
全域性索引 global index
1. 全域性索引的分割槽鍵和分割槽數和表的分割槽鍵和分割槽數可能都不相同,表和全域性索引的分區機制不一樣。
2. 全域性索引可以分割槽,也可以是不分割槽索引,全域性索引必須是字首索引,即全域性索引的索引列必須是以索引分割槽鍵作為其前幾列。
3. 全域性分割槽索引的索引條目可能指向若干個分割槽,因此,對於全域性分割槽索引,即使只
動,截斷一個分割槽中的資料,都需要rebulid 若干個分割槽甚
至是整個索引。
4. 全域性索引多應用於oltp系統中。
5. 全域性分割槽索引只按範圍或者雜湊hash分割槽,hash分割槽是10g以後才支援。
6. oracle9i以後對分割槽表做move或者truncate 的時可以用update global indexes語句來同步更新全域性分割槽索引,用消耗一定資源來換取高度的可用性。
7. 表用a列作分割槽,索引用b做區域性分割槽索引,若where 條件中用b來查詢,那麼oracle會掃描所有的表和索引的分割槽,成本會比分割槽更高,此時可以考慮用b做全域性分割槽索引。
分割槽索引字典
DBA_PART_INDEXES 分割槽索引的概要統計資訊,可以得知每個表上有哪些分割槽索引,分區索引的類新(local/global,)
Dba_ind_partitions 每個分割槽索引的分割槽級統計資訊
Dba_indexes minus 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重建
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10159839/viewspace-255416/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 全域性分割槽索引和區域性分割槽索引索引
- 分割槽表中的區域性分割槽索引及全域性索引與執行計劃索引
- 分割槽索引之本地(local index)索引和全域性索引(global index)索引Index
- 分割槽表本地索引與全域性索引的區別索引
- 分割槽索引和全域性索引(轉載)索引
- 分割槽表、分割槽索引和全域性索引部分總結索引
- 刪除分割槽需要更新全域性索引索引
- 分割槽表的分割槽資料刪除、truncate會對全域性和區域性索引產生什麼影響索引
- Oracle帶區域性分割槽索引的分割槽表刪除舊分割槽新增新分割槽Oracle索引
- Oracle分割槽表全域性索引新增分割槽時不會失效Oracle索引
- ddl 導致分割槽表全域性索引unusable索引
- 刪除分割槽更新全域性索引使用提醒索引
- [轉]Oracle分割槽索引--本地索引和全域性索引比較Oracle索引
- Oracle分割槽索引--本地索引和全域性索引比較(轉)Oracle索引
- 分割槽表全域性索引與本地索引的選擇索引
- 分割槽表 全域性索引與本地索引失效測試索引
- python全域性變數和區域性變數, globalPython變數
- ORACLE10g新特性——全域性HASH分割槽索引Oracle索引
- 事務、全域性索引、透明分散式,再見,分割槽健!索引分散式
- 分割槽表中全域性及本地分割槽索引什麼時候會失效及處理索引
- 記一次Oracle分割槽表全域性索引重建的過程Oracle索引
- 分割槽表中全域性及本地分割槽索引什麼時候會失效及處理[final]索引
- 全域性變數與區域性變數變數
- 區域性變數和全域性變數變數
- C語言區域性變數、全域性變數、靜態區域性變數、靜態全域性變數C語言變數
- Java區域性變數與全域性變數Java變數
- java 全域性變數和區域性變數Java變數
- Python的全域性和區域性變數Python變數
- JavaScript —— 區域性變數和全域性變數JavaScript變數
- jmeter全域性變數和區域性變數JMeter變數
- 【c】全域性變數與區域性變數變數
- 全面學習分割槽表及分割槽索引(15)--修改表分割槽屬性和模板索引
- vue.js全域性元件和區域性元件區別Vue.js元件
- 在範圍分割槽表上分割槽維護操作對全域性及本地索引狀態的影響(2)索引
- python學習筆記 區域性和全域性作用域Python筆記
- [Python學習] 專題六.區域性變數、全域性變數global、匯入模組變數Python變數
- 分割槽表的bitmap索引不能是global的索引
- python全域性變數與區域性變數Python變數