天天看點

資料泵導入性能小釋(二)

寫前幾篇文章的時候對資料泵還了解不多,最近閱讀文檔發現,并行的設定也是有技巧的,如果設定的合理,可以明顯的提高導出的性能。

首先還是看一下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