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

yangtingkun發表於2007-08-01

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

首先比較一下EXP常規模式、EXP直接路徑模式和EXPDP三種方式匯出的區別。


這個例子匯出10g資料庫上的一個方案,大於40G左右:

$ sqlplus "/ as sysdba"

SQL*Plus: Release 10.2.0.3.0 - Production on 星期五 6 1 02:11:29 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> select sum(bytes)/1024/1024/1024 from dba_segments where owner = 'ZHEJIANG';

SUM(BYTES)/1024/1024/1024
-------------------------
41.5518188

首先是EXP的常規路徑匯出:

$ exp zhejiang/zhejiang file=/data1/zj_regular.dmp buffer=20480000

Export: Release 10.2.0.3.0 - Production on 星期五 6 1 17:45:06 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
已匯出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集

.
正在匯出 pre-schema 過程物件和操作
.
正在匯出使用者 ZHEJIANG 的外部函式庫名
.
匯出 PUBLIC 型別同義詞
.
正在匯出專用型別同義詞
.
正在匯出使用者 ZHEJIANG 的物件型別定義即將匯出 ZHEJIANG 的物件...
.
正在匯出資料庫連結

.
正在匯出序號
.
正在匯出簇定義
.
即將匯出 ZHEJIANG 的表透過常規路徑...
. .
正在匯出表 A匯出了 1216

.
.
.
. .
正在匯出表 Z_INVITE_COMM_PUB匯出了 147
.
正在匯出同義詞
.
正在匯出檢視
.
正在匯出儲存過程
.
正在匯出運算子
.
正在匯出引用完整性約束條件
.
正在匯出觸發器
.
正在匯出索引型別
.
正在匯出點陣圖, 功能性索引和可擴充套件索引
.
正在匯出後期表活動
.
正在匯出實體化檢視
.
正在匯出快照日誌
.
正在匯出作業佇列
.
正在匯出重新整理組和子組
.
正在匯出維
.
正在匯出 post-schema 過程物件和操作
.
正在匯出統計資訊成功終止匯出, 沒有出現警告。
$ ls -l /data1/zj_regular.dmp
-rw-r--r-- 1 oracle oinstall 18540327936 Jun 1 19:09 /data1/zj_regular.dmp

根據起始時間和結束時間,可以看到常規EXP匯出方式執行了1小時24分鐘。

下面看看直接路徑匯出方式:

$ exp zhejiang/zhejiang file=/data1/zj_direct.dmp buffer=20480000 recordlength=65535 direct=y

Export: Release 10.2.0.3.0 - Production on 星期五 6 1 21:06:35 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
已匯出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集

.
正在匯出 pre-schema 過程物件和操作
.
正在匯出使用者 ZHEJIANG 的外部函式庫名
.
匯出 PUBLIC 型別同義詞
.
正在匯出專用型別同義詞
.
正在匯出使用者 ZHEJIANG 的物件型別定義即將匯出 ZHEJIANG 的物件...
.
正在匯出資料庫連結

.
正在匯出序號
.
正在匯出簇定義
.
即將匯出 ZHEJIANG 的表透過直接路徑...
. .
正在匯出表 A匯出了 1216

.
.
.
. .
正在匯出表 Z_INVITE_COMM_PUB匯出了 147
.
正在匯出同義詞
.
正在匯出檢視
.
正在匯出儲存過程
.
正在匯出運算子
.
正在匯出引用完整性約束條件
.
正在匯出觸發器
.
正在匯出索引型別
.
正在匯出點陣圖, 功能性索引和可擴充套件索引
.
正在匯出後期表活動
.
正在匯出實體化檢視
.
正在匯出快照日誌
.
正在匯出作業佇列
.
正在匯出重新整理組和子組
.
正在匯出維
.
正在匯出 post-schema 過程物件和操作
.
正在匯出統計資訊成功終止匯出, 沒有出現警告。
$ ls -l /data1/zj_direct.dmp
-rw-r--r-- 1 oracle oinstall 18460095405 Jun 1 21:24 /data1/zj_direct.dmp

直接路徑匯入用時18分鐘,比常規路徑匯出速度有一個明顯的提高。最後來看看資料泵的匯出速度。

資料泵必須要使用DIRECTORY,下面先建立一個DIRECTORY,然後執行匯出操作:

$ expdp zhejiang/zhejiang dumpfile=zj_datapump.dp directory=d_test schemas=zhejiang

Export: Release 10.2.0.3.0 - 64bit Production on 星期五, 01 6, 2007 21:34: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/******** dumpfile=zj_datapump.dp directory=d_test schemas=zhejiang 正在使用 BLOCKS 方法進行估計...處理物件型別 SCHEMA_EXPORT/TABLE/TABLE_DATA使用 BLOCKS 方法的總估計: 22.25 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/INDEX/FUNCTIONAL_AND_BITMAP/INDEX處理物件型別 SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/FUNCTIONAL_AND_BITMAP/INDEX_STATISTICS處理物件型別 SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS處理物件型別 SCHEMA_EXPORT/JOB
. .
匯出了 "ZHEJIANG"."ORD_HIT_COMM" 3.255 GB 4176146

.
.
.
. .
匯出了 "ZHEJIANG"."USR_USER_PLAT_ROLE" 0 KB 0 已成功載入/解除安裝了主表 "ZHEJIANG"."SYS_EXPORT_SCHEMA_01"
******************************************************************************
ZHEJIANG.SYS_EXPORT_SCHEMA_01
的轉儲檔案集為
:
/data1/zj_datapump.dp
作業 "ZHEJIANG"."SYS_EXPORT_SCHEMA_01" 已於 21:48:25 成功完成

從匯出資訊看,資料泵的匯出時間僅用了14分鐘,比直接路徑匯入方式還快了20%多。而且觀察三個匯出檔案的大小可以發現,匯出速度越快對應的檔案也越小,其中資料泵的匯出方式得到的檔案要比EXP方式小將近1.5G。

$ ls -l /data1/zj_*.d*p
-rw-r----- 1 oracle oinstall 17066897408 Jun 1 21:48 /data1/zj_datapump.dp
-rw-r--r-- 1 oracle oinstall 18460095405 Jun 1 21:24 /data1/zj_direct.dmp
-rw-r--r-- 1 oracle oinstall 18540327936 Jun 1 19:09 /data1/zj_regular.dmp

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

相關文章