• 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小时以内。

  • 相关阅读:
    python基础十一之装饰器进阶
    python基础十之装饰器
    python基础九之函数
    python基础八之文件操作
    python基础七之copy
    python基础七之集合
    python基础数据类型汇总
    python基础六之编码
    synchronized关键字的内存语义
    对于this和当前线程的一些理解
  • 原文地址:https://www.cnblogs.com/caoyibin/p/14566010.html
Copyright © 2020-2023  润新知