数据泵导入性能小释(二)

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

 

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

数据泵和EXP导出方式的性能对比http://blog.csdn.net/bbqk9/archive/2011/04/29/6372449.aspx

数据泵导入性能小释            http://blog.csdn.net/bbqk9/archive/2011/04/29/6372461.aspx

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值