ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 10g数据泵和导入导出性能对比(四)

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

原创 Linux操作系统 作者:yangtingkun 时间:2008-03-17 19:17:38 0 删除 编辑

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

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

10g数据泵和导入导出性能对比(一):http://yangtingkun.itpub.net/post/468/321482

10g数据泵和导入导出性能对比(二):http://yangtingkun.itpub.net/post/468/323899

10g数据泵和导入导出性能对比(三):http://yangtingkun.itpub.net/post/468/328465

 

 

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

首先还是看一下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瓶颈,此时单单靠增加并行度已经无法明显提升性能了。

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/4227/viewspace-208540/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
暂无介绍

注册时间:2007-12-29

  • 博文量
    1955
  • 访问量
    10352946