Oracle的分割槽索引技術
在Oracle中,和表一樣,索引也可以分割槽。有兩種型別的分割槽索引,區域性分割槽索引和全域性分割槽索引。
1. 區域性分割槽索引
區域性分割槽索引使用LOCAL關鍵字建立,其分割槽邊界與表相同,即與每個表分割槽相關聯的都有一個索引分割槽,下面是個區域性分割槽索引的例子:
如果區域性分割槽索引包含分割槽鍵列並且謂詞條件包含分割槽鍵列,執行計劃通常僅需要訪問一個或很少的索引分割槽,這種特性叫分割槽消除(Partition Elimination),分割槽消除可以有效地減少掃描資料塊,提高查詢效能,如:
上例中,查詢1的謂詞條件包含分割槽鍵值,因此可以利用分割槽消除減少掃描的分割槽數(該例中只需要掃描分割槽p_2011);而查詢2的謂詞條件不包含分割槽鍵值,因此無法利用分割槽消除。
區域性分割槽索引除了分割槽消除,還具有表可用性更好這個優點,當對某個表分割槽進行DROP或MERGE操作後,Oracle會自動對所對應的索引分割槽進行相同的操作,不需要rebuild,即維護操作可以在獨立分割槽進行。
2. 全域性分割槽索引
全域性分割槽索引使用GLOBAL關鍵字建立,索引的分割槽邊界與表的分割槽邊界不一定匹配,且表和索引的分割槽鍵也可以不一樣。下面是一個全域性分割槽索引的例子:
在上例中,雖然表和索引的分割槽鍵是一樣的,但是它們的分割槽邊界不一樣,所以屬於全域性分割槽索引。全域性分割槽索引的優點是索引分割槽和表分割槽無關,比較靈活;但是它的缺點是對全域性分割槽索引的任何維護都將需要獲得對錶的較高層級的鎖,從而降低應用的可用性。
1. 區域性分割槽索引
區域性分割槽索引使用LOCAL關鍵字建立,其分割槽邊界與表相同,即與每個表分割槽相關聯的都有一個索引分割槽,下面是個區域性分割槽索引的例子:
create table sales_par partitioned by range (year) ( partition p_2009 values less than (2010) partition p_2010 values less than (2011), partition p_2011 values less than (2012), partition p_2012 values less than (2013) ) as select * from sales; --建立區域性分割槽索引 create index sales_idx1 on sales_par (product,year) local; |
--查詢1: select * from sales_par where product = 'CPU' and year = 2011; --查詢2: select * from sales_par where product = 'CPU'; |
區域性分割槽索引除了分割槽消除,還具有表可用性更好這個優點,當對某個表分割槽進行DROP或MERGE操作後,Oracle會自動對所對應的索引分割槽進行相同的操作,不需要rebuild,即維護操作可以在獨立分割槽進行。
2. 全域性分割槽索引
全域性分割槽索引使用GLOBAL關鍵字建立,索引的分割槽邊界與表的分割槽邊界不一定匹配,且表和索引的分割槽鍵也可以不一樣。下面是一個全域性分割槽索引的例子:
create index sales_idx2 on sales (year) global partition by range (year) ( partition p_2010 values less than (2011), partition p_2012 values less than (2013) ); |
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26277071/viewspace-713863/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【INDEX】Oracle分割槽索引技術詳解IndexOracle索引
- Oracle 分割槽(partition)技術Oracle
- Oracle索引分割槽Oracle索引
- Oracle分割槽表及分割槽索引Oracle索引
- 簡單ORACLE分割槽表、分割槽索引Oracle索引
- oracle分割槽交換(exchange)技術Oracle
- Oracle表分割槽技術概述Oracle
- oracle分割槽索引(二)Oracle索引
- oracle分割槽索引(一)Oracle索引
- oracle索引詳解 分割槽索引Oracle索引
- oracle 建立所有分割槽索引Oracle索引
- Oracle分割槽之五:建立分割槽索引總結Oracle索引
- 深入學習Oracle分割槽表及分割槽索引Oracle索引
- 全面認識oracle分割槽表及分割槽索引Oracle索引
- oracle分割槽partition及分割槽索引partition index(一)Oracle索引Index
- oracle本地分割槽索引跨分割槽對成本的影響Oracle索引
- Oracle帶區域性分割槽索引的分割槽表刪除舊分割槽新增新分割槽Oracle索引
- oracle 針對普通表的索引分割槽及10g新增hash 索引分割槽Oracle索引
- 【原創】ORACLE 分割槽與索引Oracle索引
- rebuild分割槽表分割槽索引的方法Rebuild索引
- Oracle分割槽表基礎運維-06分割槽表索引Oracle運維索引
- 【學習筆記】分割槽表和分割槽索引——管理索引分割槽(四)筆記索引
- Oracle分割槽表全域性索引新增分割槽時不會失效Oracle索引
- 全面學習分割槽表及分割槽索引(17)--其它索引分割槽管理操作索引
- 全域性分割槽索引和區域性分割槽索引索引
- 關於 Oracle 分割槽索引的失效和重建Oracle索引
- 分割槽表及分割槽索引建立示例索引
- 全面學習分割槽表及分割槽索引(16)--增加和刪除索引分割槽索引
- 關於ORACLE MYSQL在非字首分割槽索引上分割槽剪裁的比較OracleMySql索引
- oracle分割槽及分割槽索引partition_partition index_維護(一)Oracle索引Index
- oracle分割槽及分割槽索引partition_partition index_維護(二)Oracle索引Index
- oracle分割槽及分割槽索引partition_partition index_維護(三)Oracle索引Index
- oracle分割槽及分割槽索引partition_partition index_維護(四)Oracle索引Index
- [轉]Oracle分割槽索引--本地索引和全域性索引比較Oracle索引
- Oracle分割槽索引--本地索引和全域性索引比較(轉)Oracle索引
- 分割槽表、分割槽索引和全域性索引部分總結索引
- 全面學習分割槽表及分割槽索引(10)--交換分割槽索引
- 索引@oracle索引技術索引Oracle