前一段时间在一次迁移中同时用到了数据泵和EXP,发现二者效率的差别还是相当大的。这里通过一个例子简单比较一下。


这篇文章比较一下IMP和IMPDP导入的区别。





前面对比了EXP和数据泵的导出,可以看到,数据泵导出速度与直接路径导出相比,速度并没有本质的提高,下面看看数据泵的导入方式与IMP的区别。


导入的DMP文件就用上面导出是得到的结果,先看看IMP的导入速度:


$ sqlplus "/ as sysdba"


SQL*Plus: Release 10.2.0.3.0 - Production on 星期六 6月 2 17:00:26 2007


Copyright (c) 1982, 2006, 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


SQL> drop user zhejiang cascade;


用户已删除。


SQL> create user zhejiang identified by zhejiang default tablespace zhejiang;


用户已创建。


SQL> grant connect, resource to zhejiang;


授权成功。


SQL> grant create database link, create synonym, create view to zhejiang;


授权成功。


SQL> exit


从 Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production


With the Partitioning, Real Application Clusters, OLAP and Data Mining options 断开


$ imp zhejiang/zhejiang file=/data1/zj_regular.dmp full=y buffer=20480000 log=/data1/zj_regular.log


Import: Release 10.2.0.3.0 - Production on 星期六 6月 2 17:10:34 2007


Copyright (c) 1982, 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


经由常规路径由 EXPORT:V10.02.01 创建的导出文件


已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入


. 正在将 ZHEJIANG 的对象导入到 ZHEJIANG


. . 正在导入表 "A"导入了 1216 行


.


.


.


. . 正在导入表 "Z_INVITE_COMM_PUB"导入了 147 行


即将启用约束条件...


成功终止导入, 但出现警告。


$ ls -l /data1/zj_regular.log


-rw-r--r-- 1 oracle oinstall 38991 Jun 2 20:27 /data1/zj_regular.log


IMP导入花费了3小时17分钟,下面看看IMPDP导入的速度:


$ sqlplus "/ as sysdba"


SQL*Plus: Release 10.2.0.3.0 - Production on 星期六 6月 2 21:08:43 2007


Copyright (c) 1982, 2006, 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


SQL> drop user zhejiang cascade;


用户已删除。


SQL> create user zhejiang identified by zhejiang default tablespace zhejiang;


用户已创建。


SQL> grant connect, resource to zhejiang;


授权成功。


SQL> grant create database link, create synonym, create view to zhejiang;


授权成功。


SQL> create or replace directory d_test as '/data1';


目录已创建。


SQL> grant read, write on directory d_test to zhejiang;


授权成功。


SQL> exit


从 Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production


With the Partitioning, Real Application Clusters, OLAP and Data Mining options 断开


$ impdp zhejiang/zhejiang DUMPFILE=zj_datapump.dp DIRECTORY=d_test FULL=y LOGFILE=zj_datapump.log


Import: Release 10.2.0.3.0 - 64bit Production on 星期日, 03 6月, 2007 1:13:45


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


处理对象类型 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_HIT_COMM" 3.255 GB 4176146 行


.


.


.


. . 导入了 "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 个错误 (于 04:21:26 完成)


数据泵的导入操作居然花了3个小时8分钟的时间,和IMP的导入速度十分接近,看来并非所有情况下都像Oracle描述的那样,数据泵的导入比普通导入效率有大幅度的提高。



oracle视频教程请关注:http://u.youku.com/user_video/id_UMzAzMjkxMjE2.html