Oracle 12.2之後ALTER TABLE .. MODIFY轉換非分割槽表為分割槽表
說明
本文將包含如下內容:
ORACLE 19.5 測試ALTER TABLE ... MODIFY轉換非分割槽表為分割槽表
建立測試表
CREATE TABLE TEST_MODIFY(ID NUMBER,NAME VARCHAR2(30),STATUS VARCHAR2(10));
插入30萬資料
declare v1 number; begin for i in 1..300000 loop execute immediate 'insert into test_modify values(:v1,''czh'',''Y'')' using i; end loop; commit; end; /
新增主鍵約束與索引
ALTER TABLE TEST_MODIFY ADD CONSTRAINT PK_TEST_MODIFY PRIMARY KEY(ID); CREATE INDEX IDX_TEST_MODIFY ON TEST_MODIFY(CASE STATUS WHEN 'N' THEN 'N' END);
收集統計資訊
exec dbms_stats.gather_table_stats(OWNNAME=>'CZH',TABNAME=>'TEST_MODIFY',cascade=>TRUE);
查詢索引狀態
14:56:06 CZH@czhpdb > select INDEX_NAME,NUM_ROWS,LEAF_BLOCKS,status from user_indexes where index_name in ('IDX_TEST_MODIFY','PK_TEST_MODIFY'); INDEX_NAME NUM_ROWS LEAF_BLOCKS STATUS -------------------- ---------------------------------------- ---------------------------------------- ---------- IDX_TEST_MODIFY 0 0 VALID PK_TEST_MODIFY 300000 626 VALID
轉換ALTER TABLE ... MODIFY
ALTER TABLE TEST_MODIFY MODIFY PARTITION BY RANGE (ID) ( PARTITION P1 VALUES LESS THAN (100000), PARTITION P2 VALUES LESS THAN (200000), PARTITION P3 values less than (maxvalue) ) ONLINE UPDATE INDEXES;
查詢索引狀態
14:57:11 CZH@czhpdb > select INDEX_NAME,NUM_ROWS,LEAF_BLOCKS,status from user_indexes where index_name in ('IDX_TEST_MODIFY','PK_TEST_MODIFY'); INDEX_NAME NUM_ROWS LEAF_BLOCKS STATUS -------------------- ---------------------------------------- ---------------------------------------- ---------- IDX_TEST_MODIFY 0 0 VALID PK_TEST_MODIFY 300000 626 N/A /* PK_TEST_MODIFY狀態N/A說明有索引子分割槽,說明pk索引轉換成了local,普通索引轉換成了global index */
索引轉換官方文件說明
If you do not specify the INDEXES clause or the INDEXES clause does not specify all
the indexes on the original non-partitioned table, then the following default
behavior applies for all unspecified indexes.
– Global partitioned indexes remain the same and retain the original partitioning
shape.
– Non-prefixed indexes become global nonpartitioned indexes.
Prefixed indexes are converted to local partitioned indexes.
Prefixed means that the partition key columns are included in the index
definition, but the index definition is not limited to including the partitioning
keys only.
– Bitmap indexes become local partitioned indexes, regardless whether they are
prefixed or not.
Bitmap indexes must always be local partitioned indexes.
• The conversion operation cannot be performed if there are domain indexes
參考文件:
Oracle® Database VLDB and Partitioning Guide
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31439444/viewspace-2686040/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle分割槽表和分割槽表exchangeOracle
- 非分割槽錶轉換成分割槽表
- oracle分割槽表和非分割槽表exchangeOracle
- oracle將表配置為分割槽表Oracle
- [oracle] expdp 匯出分割槽表的分割槽Oracle
- PG的非分割槽表線上轉分割槽表
- LightDB 22.4 新特性之相容Oracle線上轉換普通表為分割槽表Oracle
- oracle 分割槽表move和包含分割槽表的lob moveOracle
- 非分割槽錶轉換成分割槽表以及注意事項
- Oracle分割槽表基礎運維-07增加分割槽(3列表分割槽)Oracle運維
- Oracle分割槽表基礎運維-04列表分割槽Oracle運維
- Oracle 12C新特性-線上把非分割槽錶轉為分割槽表Oracle
- ORACLE分割槽表梳理系列Oracle
- Oracle分割槽表基礎運維-07增加分割槽(2 HASH分割槽)Oracle運維
- Oracle分割槽表基礎運維-06分割槽表索引Oracle運維索引
- oracle 普通表-分割槽表改造流程Oracle
- Oracle分割槽表基礎運維-07增加分割槽(1範圍分割槽)Oracle運維
- Oracle分割槽表基礎運維-09刪除分割槽Oracle運維
- Oracle分割槽表基礎運維-05組合分割槽Oracle運維
- Oracle分割槽表基礎運維-02範圍分割槽Oracle運維
- Oracle分割槽表基礎運維-03HASH分割槽Oracle運維
- Oracle分割槽表基礎運維-01分割槽表分類Oracle運維
- oracle 線上重新定義,普通表改變分割槽表,分割槽表可以更改型別、分割槽欄位等Oracle型別
- PostgreSQL/LightDB 分割槽表之分割槽裁剪SQL
- 【MYSQL】 分割槽表MySql
- 分割槽表之自動增加分割槽(11G)
- 移動分割槽表和分割槽索引的表空間索引
- Oracle SQL調優之分割槽表OracleSQL
- 對oracle分割槽表的理解整理Oracle
- 增加表分割槽時,為local分割槽索引指定不同表空間的方法索引
- ORACLE 19c 新特性之混合分割槽表Oracle
- 分割槽表-實戰
- MySQL 分割槽表探索MySql
- 【Linux】MBR磁碟分割槽表只能有四個分割槽?Linux
- ORACLE刪除-表分割槽和資料Oracle
- Oracle分割槽表基礎運維-07增加分割槽(4 RANGE_HASH)Oracle運維
- Oracle分割槽表基礎運維-07增加分割槽(5RANGE_LIST)Oracle運維
- Oracle分割槽表基礎運維-07增加分割槽(6RANGE_RANGE)Oracle運維