前一段时间在一次迁移中同时用到了数据泵和EXP,发现二者效率的差别还是相当大的。这里通过一个例子简单比较一下。
这篇文章介绍提高IMPDP导入效率的方法。
上面一篇文章的测试中发现IMPDP的导入速度和IMP导入速度相差无几。而Oracle在介绍数据泵的时候,提到IMPDP的导入速度最高是IMP的10倍。不过好在IMPDP还是可以优化调整的,那就是通过设置PARALLEL来提高IMPDP的并行度。
SQL> show parameter cpu
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
cpu_count integer 2
parallel_threads_per_cpu integer 2
由于数据库服务器的CPU个数为2,下面尝试设置PARALLEL为2来进行导入:
$ impdp zhejiang/zhejiang DUMPFILE=zj_datapump.dp DIRECTORY=d_test FULL=y LOGFILE=zj_datapump.log parallel=2
Import: Release 10.2.0.3.0 - 64bit Production on 星期三, 06 6月, 2007 18:06:19
Copyright (c) 2003, 2005, Oracle. All rights reserved.
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP and Data Mining options
ORA-39154: 外部方案中的对象已从导入中删除已成功加载/卸载了主表 "ZHEJIANG"."SYS_IMPORT_FULL_01" 启动 "ZHEJIANG"."SYS_IMPORT_FULL_01": zhejiang/******** DUMPFILE=zj_datapump.dp DIRECTORY=d_test FULL=y LOGFILE=zj_datapump.log parallel=2 处理对象类型 SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA处理对象类型 SCHEMA_EXPORT/SYNONYM/SYNONYM处理对象类型 SCHEMA_EXPORT/TYPE/TYPE_SPEC处理对象类型 SCHEMA_EXPORT/DB_LINK处理对象类型 SCHEMA_EXPORT/SEQUENCE/SEQUENCE处理对象类型 SCHEMA_EXPORT/TABLE/TABLE处理对象类型 SCHEMA_EXPORT/TABLE/TABLE_DATA
. . 导入了 "ZHEJIANG"."ORD_ORDER_ITEM" 1.890 GB 3226647 行
.
.
.
本文URL地址:http://www.bianceng.cn/database/Oracle/201410/45551.htm
. . 导入了 "ZHEJIANG"."USR_USER_PLAT_ROLE" 0 KB 0 行处理对象类型 SCHEMA_EXPORT/TABLE/INDEX/INDEX处理对象类型 SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT处理对象类型 SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS处理对象类型 SCHEMA_EXPORT/TABLE/COMMENT处理对象类型 SCHEMA_EXPORT/PACKAGE/PACKAGE_SPEC处理对象类型 SCHEMA_EXPORT/FUNCTION/FUNCTION处理对象类型 SCHEMA_EXPORT/PROCEDURE/PROCEDURE处理对象类型 SCHEMA_EXPORT/PACKAGE/COMPILE_PACKAGE/PACKAGE_SPEC/ALTER_PACKAGE_SPEC处理对象类型 SCHEMA_EXPORT/FUNCTION/ALTER_FUNCTION处理对象类型 SCHEMA_EXPORT/PROCEDURE/ALTER_PROCEDURE
ORA-39082: 对象类型 ALTER_PROCEDURE:"ZHEJIANG"."PT_ENTER_FACTORY" 已创建, 但带有编译警告
.
.
.
ORA-39082: 对象类型 PACKAGE_BODY:"ZHEJIANG"."USR_ROLE$RP" 已创建, 但带有编译警告处理对象类型 SCHEMA_EXPORT/TYPE/TYPE_BODY处理对象类型 SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT处理对象类型 SCHEMA_EXPORT/TABLE/INDEX/FUNCTIONAL_AND_BITMAP/INDEX处理对象类型 SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/FUNCTIONAL_AND_BITMAP/INDEX_STATISTICS处理对象类型 SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS作业 "ZHEJIANG"."SYS_IMPORT_FULL_01" 已经完成, 但是有 34 个错误 (于 20:35:03 完成)
采用并行度为2的导入方式,发现速度果然提高了很多。并行度为1的导入速度是3小时8分钟,而现在用了不到2个半小时。
由于并行度设置不应该超过CPU数的2倍,因此尝试平行度3和4的导入,导入时间和并行度2十分接近。看来已经无法再使用通过提高并行度的方法来提高性能了。