global index & local index的區別
區域性索引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重建。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/670493/viewspace-1025141/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【Oracle】global index & local index的區別OracleIndex
- 建立檢視和淺析LOCAL INDEX和GLOBAL INDEXIndex
- 分割槽索引之本地(local index)索引和全域性索引(global index)索引Index
- LOCAL INDEX和HINT的使用【DO BE USED LOCAL INDEX IN HINT】薦Index
- local nopartition index:Index
- pk 、unique index 和 index 區別Index
- rebuild index 和 recreate index (重新建立index) 的區別RebuildIndex
- create index/create index online區別Index
- oracle invisible index與unusable index的區別OracleIndex
- INDEX FULL SCAN和INDEX FAST FULL SCAN的區別IndexAST
- INDEX FULL SCAN和INDEX FAST FULL SCAN區別IndexAST
- index full scan 和 index FAST full scan 區別IndexAST
- 那上邊的到底是 global index還是partition indexIndex
- attempt to index local ‘result‘ (a nil value)Index
- index 和 index_desc hints的一點有意思的區別Index
- partition_global index補疑(一)Index
- unique index與primary key的區別Index
- 4、關於global nopartition index和普通index的概念區別,我認為是global nopartition index是它的底層表必須是分割槽,此時它才有這個概念意思,而普通indIndex
- 【Python】pyenv的版本控制及global、shell、local命令區別Python
- [20171211]UNIQUE LOCAL(Partitioned)IndexIndex
- oracle index unique scan/index range scan和mysql range/const/ref/eq_ref的區別OracleIndexMySql
- 唯一index和非唯一index中leaf node裡rowid的一點區別。Index
- alter index rebuild和rebuild online的區別IndexRebuild
- rebuild index online和create index online及沒有online的區別RebuildIndex
- MySQL explain結果Extra中"Using Index"與"Using where; Using index"區別MySqlAIIndex
- 【fk_index】外來鍵中有無索引的區別Index索引
- KEEP INDEX | DROP INDEXIndex
- Elasticsearch之索引模板index template與索引別名index aliasElasticsearch索引Index
- Index的掃描方式:index full scan/index fast full scanIndexAST
- mysql中key 、primary key 、unique key 與index區別MySqlIndex
- 【江楓 】Oracle 9i和10g在create index和rebuild index的統計資訊的區別OracleIndexRebuild
- analyze index 時validate structure和compute statistics的區別IndexStruct
- rowid,index,INDEX FULL SCAN,INDEX FAST FULL SCAN|IndexAST
- 主鍵(PK)與非空唯一索引(Unique Index)的區別索引Index
- INDEX UNIQUE SCAN,INDEX FULL SCAN和INDEX FAST FULL SCANIndexAST
- [20130813]Global Index Maintenance 11G.txtIndexAINaN
- Clustered Index Scan and Clustered Index SeekIndex
- index range scan,index fast full scan,index skip scan發生的條件IndexAST