Impdp過程中索引的進一步處理


  在上一篇《impdp數據導入過程中exclude參數是否排除index的驗證 》中描述的在Impdp導入數據的過程中分為兩個階段:

  1.純數據導入,即content=data_only;

  2.追加索引,即include=index,constraint;

    

       導入過程中,發現:

  ORA-39083: Object type INDEX:"WXJZCSK"."IDX_ACD8_PRSENO" failed to create with error:
  ORA-01157: cannot identify/lock data file 5050 - see DBWR trace file
  ORA-01110: data file 5050: '+DATADG/CXJBDB/B24267126E548D42E0531A14580AE2EF/TEMPFILE/temp.1674.1067731087'

  Failing sql is:
  CREATE UNIQUE INDEX "WXJZCSK"."IDX_ACD8_PRSENO" ON "WXJZCSK"."ACD8" ("PRSENO") REVERSE PCTFREE 10 INITRANS 2 MAXTRANS 255               STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT   FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "AHXNB" PARALLEL 1

 

  可見,使用impdp追加索引的過程中,哪怕是在impdp語句中配置了parameter參數大於1,建索引的過程parallel依然為1(這或許也是bug)。

       進一步的優化思路:

       1)小表直接導入,大表導入數據前先禁用索引和約束;

        比如:

  alter index SYS_C00XXXXX unusable;
  alter table TESTXX disable constraint SYS_C00XXXX;

       2)然后使用數據泵導入數據;

       3)最后並行重建索引,激活約束;

   alter index idx_XXXXX rebuild online compute statistics parallel 16;
   alter index idx_XXXXX noparallel;

        alter table TESTXX enable constraint SYS_C00XXXXX;

        小結:

   在數據導入過程中,挑出比較大的表進行處理。並行創建索引速度明顯快很多,總體的數據導入快了很多。經過這樣處理,導入總時間縮短到10小時以內。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM