您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關Oracle中global index和local index的區別是什么,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
記錄一下global index & local index的區別 |
表可以按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_indexesminusdba_part_indexes,可以得到每個表上有哪些非分區索引 索引重建 Alter index idx_name rebuild partition index_partition_name [online nologging]需要對每個分區索引做rebuild,重建的時候可以選擇online(不會鎖定表),或者nologging建立索引的時候不生成日志,加快速度。Alter index rebuild idx_name [online nologging]對非分區索引,只能整個index重建 |
上述就是小編為大家分享的Oracle中global index和local index的區別是什么了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。