10g資料泵和匯入匯出效能對比(三)

yangtingkun發表於2007-08-06

前一段時間在一次遷移中同時用到了資料泵和EXP,發現二者效率的差別還是相當大的。這裡透過一個例子簡單比較一下。

這篇文章介紹提高IMPDP匯入效率的方法。

10g資料泵和匯入匯出效能對比(一):http://yangtingkun.itpub.net/post/468/321482

10g資料泵和匯入匯出效能對比(二):http://yangtingkun.itpub.net/post/468/323899


上面一篇文章的測試中發現IMPDP的匯入速度和IMP匯入速度相差無幾。而Oracle在介紹資料泵的時候,提到IMPDP的匯入速度最高是IMP10倍。不過好在IMPDP還是可以最佳化調整的,那就是透過設定PARALLEL來提高IMPDP的並行度。

SQL> show parameter cpu

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
cpu_count integer 2
parallel_threads_per_cpu integer 2

由於資料庫伺服器的CPU個數為2,下面嘗試設定PARALLEL2來進行匯入:

$ impdp zhejiang/zhejiang DUMPFILE=zj_datapump.dp DIRECTORY=d_test FULL=y LOGFILE=zj_datapump.log parallel=2

Import: Release 10.2.0.3.0 - 64bit Production on 星期三, 06 6, 2007 18:06:19

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
ORA-39154:
外部方案中的物件已從匯入中刪除
已成功載入/解除安裝了主表 "ZHEJIANG"."SYS_IMPORT_FULL_01" 啟動 "ZHEJIANG"."SYS_IMPORT_FULL_01": zhejiang/******** DUMPFILE=zj_datapump.dp DIRECTORY=d_test FULL=y LOGFILE=zj_datapump.log parallel=2 處理物件型別 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/TABLE_DATA
. .
匯入了 "ZHEJIANG"."ORD_ORDER_ITEM" 1.890 GB 3226647

.
.
.
. .
匯入了 "ZHEJIANG"."USR_USER_PLAT_ROLE" 0 KB 0 處理物件型別 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
ORA-39082:
物件型別 ALTER_PROCEDURE:"ZHEJIANG"."PT_ENTER_FACTORY" 已建立, 但帶有編譯警告

.
.
.
ORA-39082:
物件型別 PACKAGE_BODY:"ZHEJIANG"."USR_ROLE$RP" 已建立, 但帶有編譯警告處理物件型別 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作業 "ZHEJIANG"."SYS_IMPORT_FULL_01" 已經完成, 但是有 34 個錯誤 ( 20:35:03 完成)

採用並行度為2的匯入方式,發現速度果然提高了很多。並行度為1的匯入速度是3小時8分鐘,而現在用了不到2個半小時。

由於並行度設定不應該超過CPU數的2倍,因此嘗試平行度34的匯入,匯入時間和並行度2十分接近。看來已經無法再使用透過提高並行度的方法來提高效能了。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4227/viewspace-69376/,如需轉載,請註明出處,否則將追究法律責任。

相關文章