前一段时间在一次迁移中同时用到了数据泵和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视频教程请关注: