日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Oracle-维护存在主键的分区表时的注意事项

發布時間:2025/3/21 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Oracle-维护存在主键的分区表时的注意事项 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 概述
  • 案例
    • Step1.新建測試表,構造測試數據
    • Step2. 查看索引狀態
      • Step2.1 普通索引
      • Step2.2 分區索引
      • Step2.3 子分區索引
  • Step3. 探究truncate/drop分區對global索引以及local索引的影響
    • Step3.1 不指定update global indexes的場景
    • Step3.2指定update global indexes的場景
  • Step4. 探究exchange分區對global索引以及local索引的影響
    • Step4.1 不指定update global indexes的場景
    • Step4.2指定update global indexes的場景
  • Step5 附加

概述

ORACLE關于維護分區表的官方指導文檔: Maintaining Partitions

我們知道,當將表中某個字段設置為主鍵的時候,oracle會自動的創建一個同名的唯一性索引。 分區表亦是如此。


案例

Step1.新建測試表,構造測試數據

我們這里建立一個list-hash的復合分區的測試表 ,同時為ARTISAN_ID這個字段創建了local索引,同時將test_primarykey_id 設置為主鍵。

-- Create table create table GLOBAL_INDEX_PRIMARYKEY (test_primarykey_id NUMBER(12) not null,artisan_id NUMBER(12) not null,created_date DATE not null,eff_date DATE not null,exp_date DATE,part_id NUMBER(6) default to_number(to_char(sysdate,'dd')) not null ) partition by list (PART_ID) subpartition by hash (TEST_PRIMARYKEY_ID) (partition P1 values (1)tablespace TAB_ARTISANpctfree 10initrans 1maxtrans 255(subpartition P1_1 tablespace TAB_ARTISAN,subpartition P2_1 tablespace TAB_ARTISAN,subpartition P3_1 tablespace TAB_ARTISAN,subpartition P4_1 tablespace TAB_ARTISAN,subpartition P5_1 tablespace TAB_ARTISAN,subpartition P6_1 tablespace TAB_ARTISAN,subpartition P7_1 tablespace TAB_ARTISAN,subpartition P8_1 tablespace TAB_ARTISAN),partition P2 values (2)tablespace TAB_ARTISANpctfree 10initrans 1maxtrans 255(subpartition P1_2 tablespace TAB_ARTISAN,subpartition P2_2 tablespace TAB_ARTISAN,subpartition P3_2 tablespace TAB_ARTISAN,subpartition P4_2 tablespace TAB_ARTISAN,subpartition P5_2 tablespace TAB_ARTISAN,subpartition P6_2 tablespace TAB_ARTISAN,subpartition P7_2 tablespace TAB_ARTISAN,subpartition P8_2 tablespace TAB_ARTISAN) ); -- Create/Recreate indexes create index IDX_ARTISAN_ID on GLOBAL_INDEX_PRIMARYKEY (ARTISAN_ID)local; -- Create/Recreate primary, unique and foreign key constraints alter table GLOBAL_INDEX_PRIMARYKEYadd constraint PK_GLOBAL_INDEX primary key (TEST_PRIMARYKEY_ID)using index tablespace TAB_ARTISANpctfree 10initrans 2maxtrans 255storage(initial 64Knext 1Mminextents 1maxextents unlimited);

PLSQL中查看

然后構造部分數據

select count(1) from GLOBAL_INDEX_PRIMARYKEY partition(p1) a ; -- 140 select count(1) from GLOBAL_INDEX_PRIMARYKEY subpartition(p1_1) a ; --8 select count(1) from GLOBAL_INDEX_PRIMARYKEY subpartition(p2_1) a ; -- 19 select count(1) from GLOBAL_INDEX_PRIMARYKEY subpartition(p3_1) a ;-- 21 select count(1) from GLOBAL_INDEX_PRIMARYKEY subpartition(p4_1) a ;-- 13 select count(1) from GLOBAL_INDEX_PRIMARYKEY subpartition(p5_1) a ;-- 16 select count(1) from GLOBAL_INDEX_PRIMARYKEY subpartition(p6_1) a ;-- 25 select count(1) from GLOBAL_INDEX_PRIMARYKEY subpartition(p7_1) a ;-- 16 select count(1) from GLOBAL_INDEX_PRIMARYKEY subpartition(p8_1) a ;-- 22select count(1) from GLOBAL_INDEX_PRIMARYKEY partition(p2) a ; -- 90 select count(1) from GLOBAL_INDEX_PRIMARYKEY subpartition(p1_2) a ;--12 select count(1) from GLOBAL_INDEX_PRIMARYKEY subpartition(p2_2) a ;--13 select count(1) from GLOBAL_INDEX_PRIMARYKEY subpartition(p3_2) a ;--9 select count(1) from GLOBAL_INDEX_PRIMARYKEY subpartition(p4_2) a ;--6 select count(1) from GLOBAL_INDEX_PRIMARYKEY subpartition(p5_2) a ;--13 select count(1) from GLOBAL_INDEX_PRIMARYKEY subpartition(p6_2) a ;--10 select count(1) from GLOBAL_INDEX_PRIMARYKEY subpartition(p7_2) a ;--16 select count(1) from GLOBAL_INDEX_PRIMARYKEY subpartition(p8_2) a ;--11

Step2. 查看索引狀態

Step2.1 普通索引

索引 如果是N/A 繼續查user_ind_partitions

SQL> select a.table_name ,a.index_name,a.status from user_indexes a where a.table_name = 'GLOBAL_INDEX_PRIMARYKEY';TABLE_NAME INDEX_NAME STATUS ------------------------------ ------------------------------ -------- GLOBAL_INDEX_PRIMARYKEY PK_GLOBAL_INDEX VALID GLOBAL_INDEX_PRIMARYKEY IDX_ARTISAN_ID N/ASQL>

Step2.2 分區索引

分區索引 如果是N/A 繼續查 user_ind_subpartitions

SQL> select a.partition_name, a.index_name, a.status2 from user_ind_partitions a3 where a.index_name in (select a.index_name4 from user_indexes a5 where a.table_name = 'GLOBAL_INDEX_PRIMARYKEY');PARTITION_NAME INDEX_NAME STATUS ------------------------------ ------------------------------ -------- P1 IDX_ARTISAN_ID N/A P2 IDX_ARTISAN_ID N/ASQL>

Step2.3 子分區索引

子分區, 因為該表復合分區 ,所以應該可以在 user_ind_subpartitions 查看到 索引的狀態 USABLE

SQL> select a.index_name, a.partition_name, a.subpartition_name, a.status2 from user_ind_subpartitions a3 where a.index_name in4 (select a.index_name5 from user_ind_partitions a6 where a.index_name in7 (select a.index_name8 from user_indexes a9 where a.table_name = 'GLOBAL_INDEX_PRIMARYKEY'));INDEX_NAME PARTITION_NAME SUBPARTITION_NAME STATUS ------------------------------ ------------------------------ ------------------------------ -------- IDX_ARTISAN_ID P1 P1_1 USABLE IDX_ARTISAN_ID P1 P2_1 USABLE IDX_ARTISAN_ID P1 P3_1 USABLE IDX_ARTISAN_ID P1 P4_1 USABLE IDX_ARTISAN_ID P1 P5_1 USABLE IDX_ARTISAN_ID P1 P6_1 USABLE IDX_ARTISAN_ID P1 P7_1 USABLE IDX_ARTISAN_ID P1 P8_1 USABLE IDX_ARTISAN_ID P2 P1_2 USABLE IDX_ARTISAN_ID P2 P2_2 USABLE IDX_ARTISAN_ID P2 P3_2 USABLE IDX_ARTISAN_ID P2 P4_2 USABLE IDX_ARTISAN_ID P2 P5_2 USABLE IDX_ARTISAN_ID P2 P6_2 USABLE IDX_ARTISAN_ID P2 P7_2 USABLE IDX_ARTISAN_ID P2 P8_2 USABLE16 rows selectedSQL>

Step3. 探究truncate/drop分區對global索引以及local索引的影響


Step3.1 不指定update global indexes的場景

導致全局索引失效,向表中寫入數據失敗,拋出 ORA-01502: index "ARTISAN.PK_GLOBAL_INDEX" or partition of such index is in unusable state 。local索引正常。需要重建global 索引

--- 1.1 140條數據 select count(1) from GLOBAL_INDEX_PRIMARYKEY partition(P1) a ; -- 140 -- 1.2 truncate 分區 不指定update global indexes的情況即不維護全局索引。 alter table GLOBAL_INDEX_PRIMARYKEY truncate partition P1 ;-- 1.3 全局索引 ---------------- 失效 UNUSABLE狀態 select a.table_name ,a.index_name,a.status from user_indexes a where a.table_name = 'GLOBAL_INDEX_PRIMARYKEY';GLOBAL_INDEX_PRIMARYKEY PK_GLOBAL_INDEX UNUSABLE GLOBAL_INDEX_PRIMARYKEY IDX_ARTISAN_ID N/A--1.4 local索引 ------------- OK select a.partition_name, a.index_name, a.statusfrom user_ind_partitions awhere a.index_name in(select a.index_namefrom user_indexes awhere a.table_name = 'GLOBAL_INDEX_PRIMARYKEY');select a.index_name, a.partition_name, a.subpartition_name, a.statusfrom user_ind_subpartitions awhere a.index_name in(select a.index_namefrom user_ind_partitions awhere a.index_name in(select a.index_namefrom user_indexes awhere a.table_name = 'GLOBAL_INDEX_PRIMARYKEY'));IDX_ARTISAN_ID P1 P1_1 USABLE IDX_ARTISAN_ID P1 P2_1 USABLE IDX_ARTISAN_ID P1 P3_1 USABLE IDX_ARTISAN_ID P1 P4_1 USABLE IDX_ARTISAN_ID P1 P5_1 USABLE IDX_ARTISAN_ID P1 P6_1 USABLE IDX_ARTISAN_ID P1 P7_1 USABLE IDX_ARTISAN_ID P1 P8_1 USABLE IDX_ARTISAN_ID P2 P1_2 USABLE IDX_ARTISAN_ID P2 P2_2 USABLE IDX_ARTISAN_ID P2 P3_2 USABLE IDX_ARTISAN_ID P2 P4_2 USABLE IDX_ARTISAN_ID P2 P5_2 USABLE IDX_ARTISAN_ID P2 P6_2 USABLE IDX_ARTISAN_ID P2 P7_2 USABLE IDX_ARTISAN_ID P2 P8_2 USABLE--1.5 寫入數據 ,此時拋出ORA-01502 異常,會影響業務。insert into GLOBAL_INDEX_PRIMARYKEY (TEST_PRIMARYKEY_ID, ARTISAN_ID, CREATED_DATE, EFF_DATE, EXP_DATE, PART_ID) values (8888, 345, to_date('14-06-2018', 'dd-mm-yyyy'), to_date('14-06-2018', 'dd-mm-yyyy'), to_date('14-06-2018', 'dd-mm-yyyy'), 1);insert into GLOBAL_INDEX_PRIMARYKEY (TEST_PRIMARYKEY_ID, ARTISAN_ID, CREATED_DATE, EFF_DATE, EXP_DATE, PART_ID) values (9999, 345, to_date('14-06-2018', 'dd-mm-yyyy'), to_date('14-06-2018', 'dd-mm-yyyy'), to_date('14-06-2018', 'dd-mm-yyyy'), 2);ORA-01502: index "ARTISAN.PK_GLOBAL_INDEX" or partition of such index is in unusable state Cause: An attempt has been made to access an index or index partition that has been marked unusable by a direct load or by a DDL operation Action: DROP the specified index, or REBUILD the specified index, or REBUILD the unusable index partition-- 1.5 重建 全局索引 alter index PK_GLOBAL_INDEX rebuild online nologging;-- 1.6 重新查詢 ,全局索引valid狀態,OK select table_name,index_name,status from user_indexes a where a.table_name = 'GLOBAL_INDEX_PRIMARYKEY';GLOBAL_INDEX_PRIMARYKEY PK_GLOBAL_INDEX VALID GLOBAL_INDEX_PRIMARYKEY IDX_ARTISAN_ID N/A-- 重新寫入數據 insert into GLOBAL_INDEX_PRIMARYKEY (TEST_PRIMARYKEY_ID, ARTISAN_ID, CREATED_DATE, EFF_DATE, EXP_DATE, PART_ID) values (8888, 345, to_date('14-06-2018', 'dd-mm-yyyy'), to_date('14-06-2018', 'dd-mm-yyyy'), to_date('14-06-2018', 'dd-mm-yyyy'), 1);insert into GLOBAL_INDEX_PRIMARYKEY (TEST_PRIMARYKEY_ID, ARTISAN_ID, CREATED_DATE, EFF_DATE, EXP_DATE, PART_ID) values (9999, 345, to_date('14-06-2018', 'dd-mm-yyyy'), to_date('14-06-2018', 'dd-mm-yyyy'), to_date('14-06-2018', 'dd-mm-yyyy'), 2);-- OK的. 回滾吧,暫時不寫入表里.

Step3.2指定update global indexes的場景

因為指定了update global indexes ,全局索引VALID ,local索引正常。 數據寫入正常,不會影響業務。

------ 為了驗證 維護全局索引的情況, P1被truncate掉了, 我們使用P2分區 --- 2.1 90 條數據 select count(1) from GLOBAL_INDEX_PRIMARYKEY partition(P2) a ; -- 90 --先查下全局索引的狀態 VALID select a.table_name ,a.index_name,a.status from user_indexes a where a.table_name = 'GLOBAL_INDEX_PRIMARYKEY'; GLOBAL_INDEX_PRIMARYKEY PK_GLOBAL_INDEX VALID GLOBAL_INDEX_PRIMARYKEY IDX_ARTISAN_ID N/A-- 2.2 truncate 分區 加 update global indexes的情況 alter table GLOBAL_INDEX_PRIMARYKEY truncate partition P2 update global indexes ; -- 2.3 全局索引 ---------------- 有效 VALID select a.table_name ,a.index_name,a.status from user_indexes a where a.table_name = 'GLOBAL_INDEX_PRIMARYKEY';GLOBAL_INDEX_PRIMARYKEY PK_GLOBAL_INDEX VALID GLOBAL_INDEX_PRIMARYKEY IDX_ARTISAN_ID N/A--2.4 local索引 ------------- OK select a.partition_name, a.index_name, a.statusfrom user_ind_partitions awhere a.index_name in(select a.index_namefrom user_indexes awhere a.table_name = 'GLOBAL_INDEX_PRIMARYKEY');select a.index_name, a.partition_name, a.subpartition_name, a.statusfrom user_ind_subpartitions awhere a.index_name in(select a.index_namefrom user_ind_partitions awhere a.index_name in(select a.index_namefrom user_indexes awhere a.table_name = 'GLOBAL_INDEX_PRIMARYKEY'));IDX_ARTISAN_ID P1 P1_1 USABLE IDX_ARTISAN_ID P1 P2_1 USABLE IDX_ARTISAN_ID P1 P3_1 USABLE IDX_ARTISAN_ID P1 P4_1 USABLE IDX_ARTISAN_ID P1 P5_1 USABLE IDX_ARTISAN_ID P1 P6_1 USABLE IDX_ARTISAN_ID P1 P7_1 USABLE IDX_ARTISAN_ID P1 P8_1 USABLE IDX_ARTISAN_ID P2 P1_2 USABLE IDX_ARTISAN_ID P2 P2_2 USABLE IDX_ARTISAN_ID P2 P3_2 USABLE IDX_ARTISAN_ID P2 P4_2 USABLE IDX_ARTISAN_ID P2 P5_2 USABLE IDX_ARTISAN_ID P2 P6_2 USABLE IDX_ARTISAN_ID P2 P7_2 USABLE IDX_ARTISAN_ID P2 P8_2 USABLE--1.5 寫入數據 OK insert into GLOBAL_INDEX_PRIMARYKEY (TEST_PRIMARYKEY_ID, ARTISAN_ID, CREATED_DATE, EFF_DATE, EXP_DATE, PART_ID) values (8888, 345, to_date('14-06-2018', 'dd-mm-yyyy'), to_date('14-06-2018', 'dd-mm-yyyy'), to_date('14-06-2018', 'dd-mm-yyyy'), 1);insert into GLOBAL_INDEX_PRIMARYKEY (TEST_PRIMARYKEY_ID, ARTISAN_ID, CREATED_DATE, EFF_DATE, EXP_DATE, PART_ID) values (9999, 345, to_date('14-06-2018', 'dd-mm-yyyy'), to_date('14-06-2018', 'dd-mm-yyyy'), to_date('14-06-2018', 'dd-mm-yyyy'), 2);commit;select * from GLOBAL_INDEX_PRIMARYKEY a where a.test_primarykey_id in (8888,9999);8888 345 2018-06-14 2018-06-14 2018-06-14 1 9999 345 2018-06-14 2018-06-14 2018-06-14 2

Step4. 探究exchange分區對global索引以及local索引的影響


Step4.1 不指定update global indexes的場景

導致全局索引失效,分區索引失效,向表中寫入數據失敗,拋出 ORA-01502: index "ARTISAN.PK_GLOBAL_INDEX" or partition of such index is in unusable state ,需要重建全局索引和分區索引

select a.table_name ,a.index_name,a.status from user_indexes a where a.table_name = 'GLOBAL_INDEX_PRIMARYKEY'; GLOBAL_INDEX_PRIMARYKEY PK_GLOBAL_INDEX VALID GLOBAL_INDEX_PRIMARYKEY IDX_ARTISAN_ID N/Aselect a.index_name, a.partition_name, a.subpartition_name, a.statusfrom user_ind_subpartitions awhere a.index_name in(select a.index_namefrom user_ind_partitions awhere a.index_name in(select a.index_namefrom user_indexes awhere a.table_name = 'GLOBAL_INDEX_PRIMARYKEY')); -- USABLE --- 1.1 1 40條數據 select count(1) from GLOBAL_INDEX_PRIMARYKEY subpartition(P1_1) a ; -- 8 -- 1.2 創建臨時表,并 exchange 分區 不加 update global indexes的情況 create table TEMP_ARTISAN as select * from GLOBAL_INDEX_PRIMARYKEY where 1=2 ;alter table GLOBAL_INDEX_PRIMARYKEY exchange subpartition P1_1 with table TEMP_ARTISAN ; -- 如果想交換 P1 這個包含子分區的分區,就不能使用 non-partitioned table Message: ORA-14291: cannot EXCHANGE a composite partition with a non-partitioned tableCause: A composite partition can only be exchanged with a partitioned table.Action: Ensure that the table being exchanged is partitioned or that that the partition being exchanged is non-composite.-- 1.3 全局索引 ---------------- 失效 UNUSABLE狀態 select a.table_name ,a.index_name,a.status from user_indexes a where a.table_name = 'GLOBAL_INDEX_PRIMARYKEY';GLOBAL_INDEX_PRIMARYKEY PK_GLOBAL_INDEX UNUSABLE GLOBAL_INDEX_PRIMARYKEY IDX_ARTISAN_ID N/A--1.4 local索引 ------------- 失效 select a.index_name, a.partition_name, a.subpartition_name, a.statusfrom user_ind_subpartitions awhere a.index_name in(select a.index_namefrom user_ind_partitions awhere a.index_name in(select a.index_namefrom user_indexes awhere a.table_name = 'GLOBAL_INDEX_PRIMARYKEY'));1 IDX_ARTISAN_ID P1 P1_1 UNUSABLE--1.5 寫入數據 insert into GLOBAL_INDEX_PRIMARYKEY (TEST_PRIMARYKEY_ID, ARTISAN_ID, CREATED_DATE, EFF_DATE, EXP_DATE, PART_ID) values (8888, 345, to_date('14-06-2018', 'dd-mm-yyyy'), to_date('14-06-2018', 'dd-mm-yyyy'), to_date('14-06-2018', 'dd-mm-yyyy'), 1);ORA-01502: index "CC.PK_GLOBAL_INDEX" or partition of such index is in unusable state Cause: An attempt has been made to access an index or index partition that has been marked unusable by a direct load or by a DDL operation Action: DROP the specified index, or REBUILD the specified index, or REBUILD the unusable index partition-- 1.5 重建 全局索引 和 local 索引 alter index PK_GLOBAL_INDEX rebuild online nologging;insert into GLOBAL_INDEX_PRIMARYKEY (TEST_PRIMARYKEY_ID, ARTISAN_ID, CREATED_DATE, EFF_DATE, EXP_DATE, PART_ID) values (8888, 345, to_date('14-06-2018', 'dd-mm-yyyy'), to_date('14-06-2018', 'dd-mm-yyyy'), to_date('14-06-2018', 'dd-mm-yyyy'), 1);insert into GLOBAL_INDEX_PRIMARYKEY (TEST_PRIMARYKEY_ID, ARTISAN_ID, CREATED_DATE, EFF_DATE, EXP_DATE, PART_ID) values (9999, 345, to_date('14-06-2018', 'dd-mm-yyyy'), to_date('14-06-2018', 'dd-mm-yyyy'), to_date('14-06-2018', 'dd-mm-yyyy'), 2);--寫入OK --重建local索引 alter index IDX_ARTISAN_ID rebuild subpartition P1_1 online;-- 1.6 重新查詢 select table_name,index_name,status from user_indexes a where a.table_name = 'GLOBAL_INDEX_PRIMARYKEY';GLOBAL_INDEX_PRIMARYKEY PK_GLOBAL_INDEX VALID GLOBAL_INDEX_PRIMARYKEY IDX_ARTISAN_ID N/Aselect a.index_name, a.partition_name, a.subpartition_name, a.statusfrom user_ind_subpartitions awhere a.index_name in(select a.index_namefrom user_ind_partitions awhere a.index_name in(select a.index_namefrom user_indexes awhere a.table_name = 'GLOBAL_INDEX_PRIMARYKEY'))and a.subpartition_name = 'P1_1';IDX_ARTISAN_ID P1 P1_1 USABLE -- OK

Step4.2指定update global indexes的場景

因為指定了update global indexes ,全局索引VALID ,但是分區索引失效了,需要重建local索引。

--- 2.1 select a.table_name ,a.index_name,a.status from user_indexes a where a.table_name = 'GLOBAL_INDEX_PRIMARYKEY'; GLOBAL_INDEX_PRIMARYKEY PK_GLOBAL_INDEX VALID GLOBAL_INDEX_PRIMARYKEY IDX_ARTISAN_ID N/Aselect a.index_name, a.partition_name, a.subpartition_name, a.statusfrom user_ind_subpartitions awhere a.index_name in(select a.index_namefrom user_ind_partitions awhere a.index_name in(select a.index_namefrom user_indexes awhere a.table_name = 'GLOBAL_INDEX_PRIMARYKEY')); -- USABLE --- 1.1 select count(1) from GLOBAL_INDEX_PRIMARYKEY subpartition(P1_2) a ; -- 12 -- 1.2 創建臨時表,并 exchange 分區 加 update global indexes的情況 create table TEMP_ARTISAN_2 as select * from GLOBAL_INDEX_PRIMARYKEY where 1=2 ;alter table GLOBAL_INDEX_PRIMARYKEY exchange subpartition P1_1 with table TEMP_ARTISAN_2 UPDATE GLOBAL INDEXES ; -- 1.3 全局索引 ---------------- VALID select a.table_name ,a.index_name,a.status from user_indexes a where a.table_name = 'GLOBAL_INDEX_PRIMARYKEY';GLOBAL_INDEX_PRIMARYKEY PK_GLOBAL_INDEX VALID GLOBAL_INDEX_PRIMARYKEY IDX_ARTISAN_ID N/A--1.4 local索引 ------------- USABLE OK select a.index_name, a.partition_name, a.subpartition_name, a.statusfrom user_ind_subpartitions awhere a.index_name in(select a.index_namefrom user_ind_partitions awhere a.index_name in(select a.index_namefrom user_indexes awhere a.table_name = 'GLOBAL_INDEX_PRIMARYKEY'));--1.5 寫入數據 OK insert into GLOBAL_INDEX_PRIMARYKEY (TEST_PRIMARYKEY_ID, ARTISAN_ID, CREATED_DATE, EFF_DATE, EXP_DATE, PART_ID) values (8888, 345, to_date('14-06-2018', 'dd-mm-yyyy'), to_date('14-06-2018', 'dd-mm-yyyy'), to_date('14-06-2018', 'dd-mm-yyyy'), 1);-- 1.6 重新查詢 select table_name,index_name,status from user_indexes a where a.table_name = 'GLOBAL_INDEX_PRIMARYKEY';GLOBAL_INDEX_PRIMARYKEY PK_GLOBAL_INDEX VALID GLOBAL_INDEX_PRIMARYKEY IDX_ARTISAN_ID N/Aselect a.index_name, a.partition_name, a.subpartition_name, a.statusfrom user_ind_subpartitions awhere a.index_name in(select a.index_namefrom user_ind_partitions awhere a.index_name in(select a.index_namefrom user_indexes awhere a.table_name = 'GLOBAL_INDEX_PRIMARYKEY'))and a.subpartition_name = 'P1_2';IDX_ARTISAN_ID P2 P1_2 USABLE-- OK

Step5 附加

釋放回收空間:

alter table table_name truncate partition partition_name drop storage;

維護全局索引:

alter table table_name truncate partition partition_name update global indexes;

UPDATE GLOBAL INDEXES只維護全局索引

UPDATE INDEXES同時維護全局和本地索引, 經驗證,local索引也會失效。 11.2.0.4.0 的版本 。 慎重使用。


INCLUDING INDEXES : 交換分區的同時,也將索引包含進去。 需要新建索引名

ALTER TABLE table_name EXCHANGE PARTITION partition_name WITH TABLE table_name_new INCLUDING INDEXES UPDATE GLOBAL INDEXES

總結

以上是生活随笔為你收集整理的Oracle-维护存在主键的分区表时的注意事项的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 麻豆视频一区二区三区 | 豆花视频在线播放 | 福利视频在线免费观看 | 美女自拍视频 | 性色av一区| 色天天干 | 久久久久久爱 | 欧美30p| 精品久久一 | 一本一道久久综合 | 健身教练巨大粗爽gay视频 | 激情四射婷婷 | 中文字幕在线资源 | 久久久久久久久免费 | 欧美岛国国产 | 国产凹凸一区二二区 | 亚洲天天影视 | 高h视频在线观看 | 亚洲色图27p | 亚洲丁香 | 亚洲欧洲另类 | 亚洲欧美日韩偷拍 | 日本一二三区视频 | 色视频一区 | wwwwxxx日本 | 国产第九页 | 国产主播中文字幕 | 国产又粗又长又大视频 | 91蜜桃婷婷狠狠久久综合9色 | 性色一区二区三区 | 久久国产成人精品av | 精品国产成人亚洲午夜福利 | 激情插插| 五月婷婷av | 亚洲av永久中文无码精品综合 | 色呦呦一区二区 | 亚洲激情短视频 | 成年人网站黄色 | xxxxwww一片| 免费久久精品 | 久久成人久久爱 | 性色国产成人久久久精品 | 一区二区三区啪啪啪 | 一本到在线视频 | 少妇人妻一区二区三区 | 日日干日日干 | 一级黄色短视频 | 久久综合成人 | 91无套直看片红桃 | 国产精品一区二区无码对白 | 伊人动漫 | 蜜臀av性久久久久蜜臀aⅴ四虎 | 亚洲综合一区在线观看 | 国产福利二区 | 美女黄色一级视频 | 1000部国产精品成人观看 | free性娇小hd第一次 | 免费看片网站91 | 精品婷婷色一区二区三区蜜桃 | 美女黄视频网站 | 九九在线 | 一区国产精品 | 日本一区二区三区欧美 | 日本视频中文字幕 | 内射国产内射夫妻免费频道 | 少妇精品无码一区二区免费视频 | 欧美77777 | 91久久国产综合久久91 | 糖心vlog精品一区二区 | 亚洲综合图片一区 | 国产三级a | 91精品国自产在线偷拍蜜桃 | 日本黄色片网址 | 日b影院| 亚洲欧美精品一区二区 | 国产99在线观看 | 人妻精品无码一区二区三区 | 日日摸夜夜添夜夜添高潮喷水 | 天天操夜夜夜 | 夜夜av | 亚洲精品污一区二区三区 | 国产爆操视频 | 日本一区成人 | 意大利性荡欲xxxxxx | 青青草一区二区三区 | 99激情| 国产成人精品久久二区二区 | 欧美一级大片在线观看 | 日本亚洲欧美 | 亚洲a视频 | 奇米成人网 | 黄色网战入口 | 国产欧美日韩三级 | 雷电将军和丘丘人繁衍后代视频 | 超碰2025| 亚洲精品av在线 | 懂色av蜜臀av粉嫩av分享 | 久热精品视频在线观看 | 啪啪网站免费观看 |