您在这里:首页 > 学员专区 > 技术文章
Oracle视频
Oracle
CUUG课程

10g数据泵和导入导出性能对比(四)

 

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

这篇文章讨论并行度对数据泵导出的影响。

 

写前几篇文章的时候对数据泵还了解不多,最近阅读文档发现,并行的设置也是有技巧的,如果设置的合理,可以明显的提高导出的性能。

首先还是看一下CPU的数量:

SQL> show parameter cpu

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

cpu_count integer 2

parallel_threads_per_cpu integer 2

根据文档的描述,并行度的设置不应该超过CPU数量的2倍,因此这里最大并行度设置为4,对比一下不设置并行、设置并行但仅设置一个导出文件、设置并行并设置对应多个导出文件等几种情况下的性能。

先看直接导出的性能:

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

Export: Release 10.2.0.3.0 - 64bit Production on 星期三, 16 1月, 2008 22:51:43

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/******** directory=d_test dumpfile=zhejiang.dp 正在使用 BLOCKS 方法进行估计...处理对象类型 SCHEMA_EXPORT/TABLE/TABLE_DATA使用 BLOCKS 方法的总估计: 22.64 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/TRIGGER处理对象类型 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"."ORD_HIT_COMM" 3.255 GB 4176146 行

. . 导出了 "ZHEJIANG"."ORD_ORDER_ITEM" 1.890 GB 3226647 行

. . 导出了 "ZHEJIANG"."CON_LIST_ITEM" 4.505 MB 7985 行

. . 导出了 "ZHEJIANG"."ORD_PURCHASE_ITEM" 1.281 GB 3238674 行

.

.

.

. . 导出了 "ZHEJIANG"."UNC_PRODUCT_MAPTJ" 0 KB 0 行

. . 导出了 "ZHEJIANG"."UNC_SMS_USER_NEW" 0 KB 0 行

. . 导出了 "ZHEJIANG"."UNC_USER_NON" 0 KB 0 行

. . 导出了 "ZHEJIANG"."USR_USER_PLAT_ROLE" 0 KB 0 行已成功加载/卸载了主表 "ZHEJIANG"."SYS_EXPORT_SCHEMA_01"

******************************************************************************

ZHEJIANG.SYS_EXPORT_SCHEMA_01 的转储文件集为:

/data1/zhejiang.dp作业 "ZHEJIANG"."SYS_EXPORT_SCHEMA_01" 已于 23:06:01 成功完成

整个导出操作大概用了14分半,下面尝试使用并行度2进行导出,这时仍然设置一个导出的数据文件

$ expdp zhejiang/zhejiang directory=d_test dumpfile=zhejiang_p2_1file.dp parallel=2

Export: Release 10.2.0.3.0 - 64bit Production on 星期三, 16 1月, 2008 23:13:10

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/******** directory=d_test dumpfile=zhejiang_p2_1file.dp parallel=2 正在使用 BLOCKS 方法进行估计...处理对象类型 SCHEMA_EXPORT/TABLE/TABLE_DATA使用 BLOCKS 方法的总估计: 22.64 GB处理对象类型 SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA

. . 导出了 "ZHEJIANG"."ORD_HIT_COMM" 3.255 GB 4176146 行处理对象类型 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/TRIGGER处理对象类型 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"."ORD_ORDER_ITEM" 1.890 GB 3226647 行

. . 导出了 "ZHEJIANG"."CON_LIST_ITEM" 4.505 MB 7985 行

. . 导出了 "ZHEJIANG"."ORD_LOG_HIT_COMM" 1.078 GB 1335486 行

. . 导出了 "ZHEJIANG"."ORD_PURCHASE_ITEM" 1.281 GB 3238674 行

.

.

.

. . 导出了 "ZHEJIANG"."UNC_SMS_USER_NEW" 0 KB 0 行

. . 导出了 "ZHEJIANG"."UNC_USER_NON" 0 KB 0 行

. . 导出了 "ZHEJIANG"."USR_USER_PLAT_ROLE" 0 KB 0 行已成功加载/卸载了主表 "ZHEJIANG"."SYS_EXPORT_SCHEMA_01"

******************************************************************************

ZHEJIANG.SYS_EXPORT_SCHEMA_01 的转储文件集为:

/data1/zhejiang_p2_1file.dp作业 "ZHEJIANG"."SYS_EXPORT_SCHEMA_01" 已于 23:27:02 成功完成

整个导入过程不到14分钟,不过这个性能的提升实在不是很明显。不过这是有原因的,由于设置了并行度,两个进程在同时执行导出操作,但是二者要将导出的数据写入同一个数据文件中,因此必然会导致资源的争用。下面仍然使用并行度2,但是同时设置两个数据文件再次检查导出性能:

$ expdp zhejiang/zhejiang directory=d_test dumpfile=zhejiang_p2_2file1.dp,zhejiang_p2_2file2.dp parallel=2

Export: Release 10.2.0.3.0 - 64bit Production on 星期三, 16 1月, 2008 23:28: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/******** directory=d_test dumpfile=zhejiang_p2_2file1.dp,zhejiang_p2_2file2.dp parallel=2 正在使用 BLOCKS 方法进行估计...处理对象类型 SCHEMA_EXPORT/TABLE/TABLE_DATA使用 BLOCKS 方法的总估计: 22.64 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/TRIGGER处理对象类型 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"."ORD_HIT_COMM" 3.255 GB 4176146 行

. . 导出了 "ZHEJIANG"."CON_LIST_ITEM" 4.505 MB 7985 行

. . 导出了 "ZHEJIANG"."ORD_ORDER_ITEM" 1.890 GB 3226647 行

. . 导出了 "ZHEJIANG"."ORD_PURCHASE_ITEM" 1.281 GB 3238674 行

.

.

.

. . 导出了 "ZHEJIANG"."UNC_PRODUCT_MAPTJ" 0 KB 0 行

. . 导出了 "ZHEJIANG"."UNC_SMS_USER_NEW" 0 KB 0 行

. . 导出了 "ZHEJIANG"."UNC_USER_NON" 0 KB 0 行

. . 导出了 "ZHEJIANG"."USR_USER_PLAT_ROLE" 0 KB 0 行已成功加载/卸载了主表 "ZHEJIANG"."SYS_EXPORT_SCHEMA_01"

******************************************************************************

ZHEJIANG.SYS_EXPORT_SCHEMA_01 的转储文件集为:

/data1/zhejiang_p2_2file1.dp

/data1/zhejiang_p2_2file2.dp作业 "ZHEJIANG"."SYS_EXPORT_SCHEMA_01" 已于 23:38:42 成功完成

这次导出仅仅用了10分半,导出的效率大大的提高。最后测试一下并行度4,分别导出到4个数据文件中:

$ expdp zhejiang/zhejiang directory=d_test dumpfile=zhj_4_4_1.dp,zhj_4_4_2.dp,zhj_4_4_3.dp,zhj_4_4_4.dp parallel=4

Export: Release 10.2.0.3.0 - 64bit Production on 星期三, 16 1月, 2008 23:40:24

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/******** directory=d_test dumpfile=zhj_4_4_1.dp,zhj_4_4_2.dp,zhj_4_4_3.dp,zhj_4_4_4.dp parallel=4 正在使用 BLOCKS 方法进行估计...处理对象类型 SCHEMA_EXPORT/TABLE/TABLE_DATA使用 BLOCKS 方法的总估计: 22.64 GB处理对象类型 SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA处理对象类型 SCHEMA_EXPORT/SYNONYM/SYNONYM

. . 导出了 "ZHEJIANG"."CON_LIST_ITEM" 4.505 MB 7985 行处理对象类型 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/TRIGGER处理对象类型 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"."ORD_PURCHASE_ITEM" 1.281 GB 3238674 行

. . 导出了 "ZHEJIANG"."ORD_ORDER_ITEM" 1.890 GB 3226647 行

. . 导出了 "ZHEJIANG"."ORD_LOG_HIT_COMM" 1.078 GB 1335486 行

. . 导出了 "ZHEJIANG"."CON_LIST_ITEM_SEND" 483.8 KB 7746 行

.

.

.

. . 导出了 "ZHEJIANG"."UNC_SMS_USER_NEW" 0 KB 0 行

. . 导出了 "ZHEJIANG"."UNC_USER_NON" 0 KB 0 行

. . 导出了 "ZHEJIANG"."USR_USER_PLAT_ROLE" 0 KB 0 行已成功加载/卸载了主表 "ZHEJIANG"."SYS_EXPORT_SCHEMA_01"

******************************************************************************

ZHEJIANG.SYS_EXPORT_SCHEMA_01 的转储文件集为:

/data1/zhj_4_4_1.dp

/data1/zhj_4_4_2.dp

/data1/zhj_4_4_3.dp

/data1/zhj_4_4_4.dp作业 "ZHEJIANG"."SYS_EXPORT_SCHEMA_01" 已于 23:49:24 成功完成

用了9分钟整导出完成,设置成并行度4仍然可以获得一定的性能提升,但是并不明显了,这主要是由于整个性能的瓶颈已经不是单个进程的处理能力,多半性能的瓶颈已经变成了磁盘IO瓶颈,此时单单靠增加并行度已经无法明显提升性能了。

 

 

 

(以上内容摘于网络,如有侵权,请告之,将第一时间删除)

相关文章 [上一篇] 10g数据泵和导入导出性能对比(三)
010-88589926(88587026)
CUUG热门培训课程
Oracle DBA就业培训
CUUG名师
网络课程
技术沙龙
最新动态

总机:(010)-88589926,88589826,88587026 QQ讨论群:243729577 182441349 邮箱:cuug_bj@cuug.com
通信地址:北京市海淀区紫竹院路98号北京化工大学科技园609室(CUUG)邮政编码:100089 
中国UNIX用户协会 Copyright 2010  ALL Rights Reserved 北京神脑资讯技术有限公司
京ICP备11008061号  京公网安备110108006275号