分割槽索引和全域性索引(轉載)
create table ta(
c1 int,
c2 varchar2(16),
c3 varchar2(64),
c4 int
constraint pk_ta primary key (c1)
) partition by range(c1)(
partition p1 values less than (10000000),
partition p2 values less than (20000000),
partition p3 values less than (30000000),
partition p4 values less than (maxvalue)
);
和:
分割槽索引就是在所有每個區上單獨建立索引,它能自動維護,在drop或truncate某個分割槽時不影響該索引的其他分割槽索引的使用,也就是索引不會失效,維護起來比較方便,但是在查詢效能稍微有點影響。
create idx_ta_c2 on ta(c2) (partition p1,partition p2,partition p3,partition p4); 或者 create index idx_ta_c2 on ta(c2) local ;
另外在create unique index idx_ta_c2 on ta(c2) local ;
系統會報ORA-14039錯誤,這是因為ta表的分割槽列是c1,不支援在分割槽表上建立PK主鍵時主鍵列不包含分割槽列,建立另外的約束(unique)也不可以。
全域性索引就是在全表上建立索引,它可以建立自己的分割槽,可以和分割槽表的分割槽不一樣,也就是它是獨立的索引。
在drop或truncate某個分割槽時需要重建索引alter index idx_xx rebuild
也可以alter table table_name drop partition partition_name update indexes;實現,但是要花很長時間在重建索引上。
可以透過查詢user_indexes、user_part_indexes和user_ind_partitions檢視來檢視索引是否有效。
create index idx_ta_c3 on ta(c3) global;
分割槽表的不分割槽全域性索引就是一般表上的普通索引。
或者把全域性索引分成多個區(注意和分割槽表的分割槽不一樣):
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)
);
注意索引上的引導列要和range後列一致,否則會有ORA-14038錯誤。
oracle會對主鍵自動建立全域性索引
如果想在主鍵的列上建立分割槽索引,除非主鍵包括分割槽鍵,還有就是主鍵建在兩個或以上列上。
在頻繁刪除表的分割槽且資料更新比較頻繁時為了維護方便避免使用全域性索引
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9252210/viewspace-631470/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 全域性分割槽索引和區域性分割槽索引索引
- [轉]Oracle分割槽索引--本地索引和全域性索引比較Oracle索引
- Oracle分割槽索引--本地索引和全域性索引比較(轉)Oracle索引
- 分割槽表、分割槽索引和全域性索引部分總結索引
- 分割槽索引之本地(local index)索引和全域性索引(global index)索引Index
- 分割槽表全域性索引與本地索引的選擇索引
- 分割槽表本地索引與全域性索引的區別索引
- 分割槽表 全域性索引與本地索引失效測試索引
- 分割槽索引:區域性 locally & 全域性 global索引
- 刪除分割槽需要更新全域性索引索引
- 分割槽表中的區域性分割槽索引及全域性索引與執行計劃索引
- ddl 導致分割槽表全域性索引unusable索引
- 刪除分割槽更新全域性索引使用提醒索引
- Oracle分割槽表全域性索引新增分割槽時不會失效Oracle索引
- ORACLE10g新特性——全域性HASH分割槽索引Oracle索引
- 【學習筆記】分割槽表和分割槽索引——管理索引分割槽(四)筆記索引
- Oracle全域性索引和本地索引Oracle索引
- 事務、全域性索引、透明分散式,再見,分割槽健!索引分散式
- 全面學習分割槽表及分割槽索引(16)--增加和刪除索引分割槽索引
- 全域性索引和本地索引的比較索引
- 分割槽表中全域性及本地分割槽索引什麼時候會失效及處理索引
- 全面學習分割槽表及分割槽索引(15)--修改表分割槽屬性和模板索引
- oracle索引詳解 分割槽索引Oracle索引
- 分割槽表的分割槽資料刪除、truncate會對全域性和區域性索引產生什麼影響索引
- Oracle索引分割槽Oracle索引
- 記一次Oracle分割槽表全域性索引重建的過程Oracle索引
- 本地索引、全域性索引、字首索引、非字首索引索引
- 全面學習分割槽表及分割槽索引(17)--其它索引分割槽管理操作索引
- Oracle分割槽表及分割槽索引Oracle索引
- 分割槽表中全域性及本地分割槽索引什麼時候會失效及處理[final]索引
- MySQL 分割槽建索引MySql索引
- oracle分割槽索引(二)Oracle索引
- oracle分割槽索引(一)Oracle索引
- 本地索引和全域性索引的適用場景索引
- 簡單ORACLE分割槽表、分割槽索引Oracle索引
- rebuild分割槽表分割槽索引的方法Rebuild索引
- 分割槽表及分割槽索引建立示例索引
- 學習筆記】分割槽表和分割槽索引——新增表分割槽(二)筆記索引