天天看點

Atitit.分區對索引的影響 分區索引和全局索引 attilax總結

Atitit.分區對索引的影響 分區索引和全局索引 attilax總結

1. 分區的好處1

2. 分區鍵:2

3. 分區的建議:2

4. 分區索引和全局索引:2

5. 全局索引就是在全表上建立索引, 3

6. 總結4

7. refer4

1. 分區的好處

在一個表的資料超過過2000萬條或占用2G空間時,建議建立分區表

分區使得資料管理操作如資料裝載、索引建立和重建、備份和恢複等在分區級别上完成,這比在表級完成操作要明顯的節省時間;

分區可以提高性能,在很多情況下,查詢可以通過掃描某個分區來完成,而不是去掃描整個表;

根據查詢條件自動将掃描範圍縮小到一個或幾個表(索引)分區上。這種方式其實是分區掃描替代了全表掃描。

如果連接配接查詢的兩張表都在連接配接列上進行分區,則 會優化連接配接操作,将一個大的連接配接分成各個對應分區間的連接配接,而且這些分區連接配接操作還可以并行執行。

并行DML:采用并行執行,可以使操作并行在各個分區上同時執行,進而提供執行效率。

2. 分區鍵:

分區表中的每條記錄都唯一的屬于一個分區,分區鍵就是确定一條記錄屬于哪個分區的一列或多個列。

分區鍵可以由1~16列組成,可以包含空值,不能包含ROWID、LEVEL或MLSLABEL等僞列

3. 分區的建議:

表的大小超過2G就可以考慮是否分區;

包含曆史資料的表。這種表一般采用時間字段的範圍分區,新的資料總是裝載到新的分區中

4. 分區索引和全局索引:

分區索引就是在所有每個區上單獨建立索引,它能自動維護,在drop或truncate某個分區時不影響該索引的其他分區索引的使用,也就是索引不會失效,維護起來比較友善,但是在查詢性能稍微有點影響。

本地分區索引和全局分區索引。

本地分區索引采用和表的等同分區,是以,在對分區進行操作時(如ADD PARTITION或DROP PARTITION等),Oracle會自動維護本地分區索引的正确性。

全局分區索引可以采用和表不同的分區範圍或分區方式。一般對分區執行了DDL操作後,全局索引都會處于INVALID狀态,不過9i增加了新的文法,UPDATE GLOBAL INDEXES,使得DDL在操作分區資料的之後維護全局索引的正确性。

作者:: 老哇的爪子 Attilax 艾龍,   

5. 全局索引就是在全表上建立索引,

它可以建立自己的分區,可以和分區表的分區不一樣,也就是它是獨立的索引。

在drop或truncate某個分區時需要建立索引alter index idx_xx rebuild,也可以alter table table_name drop partition partition_name update global indexes;實作,但是要花很長時間在重建索引上。可以通過查詢user_indexes、user_part_indexes和user_ind_partitions視圖來檢視索引是否有效。

或者把全局索引分成多個區(注意和分區表的分區不一樣):

      create index idx_ta_c4 on ta(c4) global partition by range(c4)(partition ip1 values less than(10000),partition ip2 values less than(20000),partition ip3 values less than(maxvalue));

6. 總結

在頻繁删除表的分區且資料更新比較頻繁時為了維護友善避免使用全局索引。

7. refer

分區表、分區索引和全局索引部分總結_資料庫技巧_IT專家網.htm

分區表和分區索引——資料庫概念-yangtingkun-ITPUB部落格.htm