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