oracle 分割槽表總結
分割槽表、分割槽索引和全域性索引:
在一個表的資料超過過2000萬條或佔用2G空間時,建議建立分割槽表。
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 index idx_ta_c2 on ta(c2) local (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,oracle不支援在分割槽表上建立PK主鍵時主鍵列不包含分割槽列,建立另外的約束(unique)也不可以。
全域性索引就是在全表上建立索引,它可以建立自己的分割槽,可以和分割槽表的分割槽不一樣,也就是它是獨立的索引。在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_c3 on ta(c3);
或者把全域性索引分成多個區(注意和分割槽表的分割槽不一樣):
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會對主鍵自動建立全域性索引
如果想在主鍵的列上建立分割槽索引,除非主鍵包括分割槽鍵,還有就是主鍵建在兩個或以上列上。
在頻繁刪除表的分割槽且資料更新比較頻繁時為了維護方便避免使用全域性索引。
在一個表的資料超過過2000萬條或佔用2G空間時,建議建立分割槽表。
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 index idx_ta_c2 on ta(c2) local (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,oracle不支援在分割槽表上建立PK主鍵時主鍵列不包含分割槽列,建立另外的約束(unique)也不可以。
全域性索引就是在全表上建立索引,它可以建立自己的分割槽,可以和分割槽表的分割槽不一樣,也就是它是獨立的索引。在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_c3 on ta(c3);
或者把全域性索引分成多個區(注意和分割槽表的分割槽不一樣):
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/21601207/viewspace-688517/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle分割槽表和分割槽表exchangeOracle
- oracle分割槽表和非分割槽表exchangeOracle
- Oracle Partition 分割槽詳細總結Oracle
- [oracle] expdp 匯出分割槽表的分割槽Oracle
- oracle 分割槽表move和包含分割槽表的lob moveOracle
- SqlServer關於分割槽表的總結SQLServer
- ORACLE分割槽表梳理系列Oracle
- Oracle分割槽表基礎運維-04列表分割槽Oracle運維
- Oracle分割槽表基礎運維-07增加分割槽(3列表分割槽)Oracle運維
- oracle將表配置為分割槽表Oracle
- oracle 普通表-分割槽表改造流程Oracle
- Oracle分割槽表基礎運維-07增加分割槽(2 HASH分割槽)Oracle運維
- Oracle分割槽表基礎運維-06分割槽表索引Oracle運維索引
- Oracle分割槽表基礎運維-09刪除分割槽Oracle運維
- Oracle分割槽表基礎運維-05組合分割槽Oracle運維
- Oracle分割槽表基礎運維-02範圍分割槽Oracle運維
- Oracle分割槽表基礎運維-03HASH分割槽Oracle運維
- Oracle分割槽表基礎運維-07增加分割槽(1範圍分割槽)Oracle運維
- Oracle分割槽表基礎運維-01分割槽表分類Oracle運維
- 對oracle分割槽表的理解整理Oracle
- Oracle SQL調優之分割槽表OracleSQL
- oracle 線上重新定義,普通表改變分割槽表,分割槽表可以更改型別、分割槽欄位等Oracle型別
- Oracle 12.2之後ALTER TABLE .. MODIFY轉換非分割槽表為分割槽表Oracle
- Hive中靜態分割槽和動態分割槽總結Hive
- ORACLE刪除-表分割槽和資料Oracle
- Oracle分割槽表基礎運維-07增加分割槽(4 RANGE_HASH)Oracle運維
- Oracle分割槽表基礎運維-07增加分割槽(5RANGE_LIST)Oracle運維
- Oracle分割槽表基礎運維-07增加分割槽(6RANGE_RANGE)Oracle運維
- Oracle drop分割槽表單個分割槽無法透過閃回恢復Oracle
- oracle分割槽表的分類及測試Oracle
- oracle 19C新特性——混合分割槽表Oracle
- oracle 更改分割槽表資料 ora-14402Oracle
- PostgreSQL/LightDB 分割槽表之分割槽裁剪SQL
- Oracle 12C新特性-線上把非分割槽錶轉為分割槽表Oracle
- PG的非分割槽表線上轉分割槽表
- 【MYSQL】 分割槽表MySql
- index_oracle索引梳理系列及分割槽表梳理IndexOracle索引
- Oracle查詢Interval partition分割槽表內資料Oracle
- ORACLE 19c 新特性之混合分割槽表Oracle