yangtingkun
===========================================================
10g数据泵和导入导出性能对比(一)
===========================================================

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

首先比较一下EXP常规模式、EXP直接路径模式和EXPDP三种方式导出的区别。


这个例子导出10g数据库上的一个方案,大于40G左右:

$ sqlplus "/ as sysdba"

SQL*Plus: Release 10.2.0.3.0 - Production on 星期五 6 1 02:11:29 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> select sum(bytes)/1024/1024/1024 from dba_segments where owner = 'ZHEJIANG';

SUM(BYTES)/1024/1024/1024
-------------------------
41.5518188

首先是EXP的常规路径导出:

$ exp zhejiang/zhejiang file=/data1/zj_regular.dmp buffer=20480000

Export: Release 10.2.0.3.0 - Production on 星期五 6 1 17:45:06 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
已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集

.
正在导出 pre-schema 过程对象和操作
.
正在导出用户 ZHEJIANG 的外部函数库名
.
导出 PUBLIC 类型同义词
.
正在导出专用类型同义词
.
正在导出用户 ZHEJIANG 的对象类型定义即将导出 ZHEJIANG 的对象...
.
正在导出数据库链接

.
正在导出序号
.
正在导出簇定义
.
即将导出 ZHEJIANG 的表通过常规路径...
. .
正在导出表 A导出了 1216

.
.
.
. .
正在导出表 Z_INVITE_COMM_PUB导出了 147
.
正在导出同义词
.
正在导出视图
.
正在导出存储过程
.
正在导出运算符
.
正在导出引用完整性约束条件
.
正在导出触发器
.
正在导出索引类型
.
正在导出位图, 功能性索引和可扩展索引
.
正在导出后期表活动
.
正在导出实体化视图
.
正在导出快照日志
.
正在导出作业队列
.
正在导出刷新组和子组
.
正在导出维
.
正在导出 post-schema 过程对象和操作
.
正在导出统计信息成功终止导出, 没有出现警告。
$ ls -l /data1/zj_regular.dmp
-rw-r--r-- 1 oracle oinstall 18540327936 Jun 1 19:09 /data1/zj_regular.dmp

根据起始时间和结束时间,可以看到常规EXP导出方式执行了1小时24分钟。

下面看看直接路径导出方式:

$ exp zhejiang/zhejiang file=/data1/zj_direct.dmp buffer=20480000 recordlength=65535 direct=y

Export: Release 10.2.0.3.0 - Production on 星期五 6 1 21:06:35 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
已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集

.
正在导出 pre-schema 过程对象和操作
.
正在导出用户 ZHEJIANG 的外部函数库名
.
导出 PUBLIC 类型同义词
.
正在导出专用类型同义词
.
正在导出用户 ZHEJIANG 的对象类型定义即将导出 ZHEJIANG 的对象...
.
正在导出数据库链接

.
正在导出序号
.
正在导出簇定义
.
即将导出 ZHEJIANG 的表通过直接路径...
. .
正在导出表 A导出了 1216

.
.
.
. .
正在导出表 Z_INVITE_COMM_PUB导出了 147
.
正在导出同义词
.
正在导出视图
.
正在导出存储过程
.
正在导出运算符
.
正在导出引用完整性约束条件
.
正在导出触发器
.
正在导出索引类型
.
正在导出位图, 功能性索引和可扩展索引
.
正在导出后期表活动
.
正在导出实体化视图
.
正在导出快照日志
.
正在导出作业队列
.
正在导出刷新组和子组
.
正在导出维
.
正在导出 post-schema 过程对象和操作
.
正在导出统计信息成功终止导出, 没有出现警告。
$ ls -l /data1/zj_direct.dmp
-rw-r--r-- 1 oracle oinstall 18460095405 Jun 1 21:24 /data1/zj_direct.dmp

直接路径导入用时18分钟,比常规路径导出速度有一个明显的提高。最后来看看数据泵的导出速度。

数据泵必须要使用DIRECTORY,下面先建立一个DIRECTORY,然后执行导出操作:

$ expdp zhejiang/zhejiang dumpfile=zj_datapump.dp directory=d_test schemas=zhejiang

Export: Release 10.2.0.3.0 - 64bit Production on 星期五, 01 6, 2007 21:34:08

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
启动
"ZHEJIANG"."SYS_EXPORT_SCHEMA_01": zhejiang/******** dumpfile=zj_datapump.dp directory=d_test schemas=zhejiang 正在使用 BLOCKS 方法进行估计...处理对象类型 SCHEMA_EXPORT/TABLE/TABLE_DATA使用 BLOCKS 方法的总估计: 22.25 GB处理对象类型 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/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处理对象类型 SCHEMA_EXPORT/PACKAGE/PACKAGE_BODY处理对象类型 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处理对象类型 SCHEMA_EXPORT/JOB
. .
导出了 "ZHEJIANG"."ORD_HIT_COMM" 3.255 GB 4176146

.
.
.
. .
导出了 "ZHEJIANG"."USR_USER_PLAT_ROLE" 0 KB 0 已成功加载/卸载了主表 "ZHEJIANG"."SYS_EXPORT_SCHEMA_01"
******************************************************************************
ZHEJIANG.SYS_EXPORT_SCHEMA_01
的转储文件集为
:
/data1/zj_datapump.dp
作业 "ZHEJIANG"."SYS_EXPORT_SCHEMA_01" 已于 21:48:25 成功完成

从导出信息看,数据泵的导出时间仅用了14分钟,比直接路径导入方式还快了20%多。而且观察三个导出文件的大小可以发现,导出速度越快对应的文件也越小,其中数据泵的导出方式得到的文件要比EXP方式小将近1.5G。

$ ls -l /data1/zj_*.d*p
-rw-r----- 1 oracle oinstall 17066897408 Jun 1 21:48 /data1/zj_datapump.dp
-rw-r--r-- 1 oracle oinstall 18460095405 Jun 1 21:24 /data1/zj_direct.dmp
-rw-r--r-- 1 oracle oinstall 18540327936 Jun 1 19:09 /data1/zj_regular.dmp

yangtingkun 发表于:2007.08.01 14:26 ::分类: ( ORACLE ) ::阅读:(2153次) :: 评论 (5)
re: 10g数据泵和导入导出性能对比 [回复]

对,起作用的是recordlength。
但是有些表包含了LOB,导出过程中常规路径还是存在的,因此保留buffer。

yangtingkun 评论于: 2007.08.02 07:46
加密的问题 [回复]

我用expdp导出在导入后,发现加密的存储过程状态不可用,
而用exp/imp则不存在这个问题,
不知道老杨有没有测试过这个问题,怎么解决的

hopilte 评论于: 2008.09.10 17:10
re: 10g数据泵和导入导出性能对比(一) [回复]

哦,还没有注意。你指的应该是WRAP后的存储过程吧?
有时间看看

yangtingkun 评论于: 2008.09.11 11:04
re: 10g数据泵和导入导出性能对比(一) [回复]

数据泵还是挺好用的,特别是直接使用DBLINK,不生成中间文件的用法,但是我试过impdp同时起几个进程是不成功的。

K 评论于: 2009.06.30 11:29
re: 10g数据泵和导入导出性能对比(一) [回复]

数据泵确实比EXP/IMP要强很多,无论是性能方面,还是功能方面

yangtingkun 评论于: 2009.07.02 11:14

发表评论
标题

在此添加评论
表情符号: smile laughing tongue angry crying sad wassat wink

称呼

邮箱地址(可选)

个人主页(可选)

 authimage


切换风格
新闻聚合
博客日历
文章归档...
最新发表...
最新评论...
最多阅读文章...
最多评论文章...
博客统计...
Blog信息
网站链接...