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

yangtingkun發表於2007-08-02

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

這篇文章比較一下IMP和IMPDP匯入的區別。

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


前面對比了EXP和資料泵的匯出,可以看到,資料泵匯出速度與直接路徑匯出相比,速度並沒有本質的提高,下面看看資料泵的匯入方式與IMP的區別。

匯入的DMP檔案就用上面匯出是得到的結果,先看看IMP的匯入速度:

$ sqlplus "/ as sysdba"

SQL*Plus: Release 10.2.0.3.0 - Production on 星期六 6月 2 17:00:26 2007

Copyright (c) 1982, 2006, 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

SQL> drop user zhejiang cascade;

使用者已刪除。

SQL> create user zhejiang identified by zhejiang default tablespace zhejiang;

使用者已建立。

SQL> grant connect, resource to zhejiang;

授權成功。

SQL> grant create database link, create synonym, create view to zhejiang;

授權成功。

SQL> exit
從 Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP and Data Mining options 斷開
$ imp zhejiang/zhejiang file=/data1/zj_regular.dmp full=y buffer=20480000 log=/data1/zj_regular.log

Import: Release 10.2.0.3.0 - Production on 星期六 6月 2 17:10:34 2007

Copyright (c) 1982, 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

經由常規路徑由 EXPORT:V10.02.01 建立的匯出檔案
已經完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的匯入
. 正在將 ZHEJIANG 的物件匯入到 ZHEJIANG
. . 正在匯入表 "A"匯入了 1216 行
.
.
.
. . 正在匯入表 "Z_INVITE_COMM_PUB"匯入了 147 行
即將啟用約束條件...
成功終止匯入, 但出現警告。
$ ls -l /data1/zj_regular.log
-rw-r--r-- 1 oracle oinstall 38991 Jun 2 20:27 /data1/zj_regular.log

IMP匯入花費了3小時17分鐘,下面看看IMPDP匯入的速度:

$ sqlplus "/ as sysdba"

SQL*Plus: Release 10.2.0.3.0 - Production on 星期六 6月 2 21:08:43 2007

Copyright (c) 1982, 2006, 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

SQL> drop user zhejiang cascade;

使用者已刪除。

SQL> create user zhejiang identified by zhejiang default tablespace zhejiang;

使用者已建立。

SQL> grant connect, resource to zhejiang;

授權成功。

SQL> grant create database link, create synonym, create view to zhejiang;

授權成功。

SQL> create or replace directory d_test as '/data1';

目錄已建立。

SQL> grant read, write on directory d_test to zhejiang;

授權成功。

SQL> exit
從 Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP and Data Mining options 斷開
$ impdp zhejiang/zhejiang DUMPFILE=zj_datapump.dp DIRECTORY=d_test FULL=y LOGFILE=zj_datapump.log

Import: Release 10.2.0.3.0 - 64bit Production on 星期日, 03 6月, 2007 1:13:45

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
處理物件型別 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_HIT_COMM" 3.255 GB 4176146 行
.
.
.
. . 匯入了 "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 個錯誤 (於 04:21:26 完成)

資料泵的匯入操作居然花了3個小時8分鐘的時間,和IMP的匯入速度十分接近,看來並非所有情況下都像Oracle描述的那樣,資料泵的匯入比普通匯入效率有大幅度的提高。

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

相關文章