根據Oracle的文檔的描述,資料泵採用不同的方式匯出匯入,效能也會有明顯的差別,這次正好有機會測試一下,遷移資料表空間、直接路徑、外部表格方式,以及資料庫鏈方式匯出、匯入的效能差異。
這篇介紹一下測試環境。
來源資料庫和目標資料庫的版本都是10.2.0.3,不存在版本差異,字元集都是ZHS16GBK,國家字元集都是AL16UTF16字元集,來源資料庫和目標資料庫都是16k的BLOCK_SIZE,因此採用遷移資料表空間的方式不存在任何的問題:
SQL> SELECT GLOBAL_NAME FROM GLOBAL_NAME;
GLOBAL_NAME
------------------------------------------------------------------------
NEWDEMO
SQL> SELECT * FROM V$VERSION;
BANNER
----------------------------------------------------------------
Oracle Database10gEnterpriseEdition Release10.2.0.3.0 - 64bi
PL/SQL Release 10.2.0.3.0 - Production
CORE 10.2.0.3.0 Production
TNS for Linux: Version 10.2.0.3.0 - Production
NLSRTL Version 10.2.0.3.0 - Production
SQL> SELECT PROPERTY_NAME, PROPERTY_VALUE
2 FROM DATABASE_PROPERTIES
3 WHERE PROPERTY_NAME LIKE '%CHARACTERSET';
PROPERTY_NAME PROPERTY_VALUE
------------------------------ --------------------------------------------------
NLS_CHARACTERSET ZHS16GBK
NLS_NCHAR_CHARACTERSET AL16UTF16
SQL> SHOW PARAMETER DB_BLOCK_SIZE
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_block_size integer 16384
上面是來源資料庫的查詢結果,目標資料庫上面的查詢結果完全一致,除了GLOBAL_NAME之外:
SQL> SELECT GLOBAL_NAME FROM GLOBAL_NAME;
GLOBAL_NAME
----------------------------------------------------------------------------
TJSQ
SQL> SELECT * FROM V$VERSION;
BANNER
----------------------------------------------------------------
Oracle Database10gEnterpriseEdition Release10.2.0.3.0 - 64bi
PL/SQL Release 10.2.0.3.0 - Production
CORE 10.2.0.3.0 Production
TNS for Linux: Version 10.2.0.3.0 - Production
NLSRTL Version 10.2.0.3.0 - Production
SQL>COLPROPERTY_VALUE FORMAT A50
SQL> SELECT PROPERTY_NAME, PROPERTY_VALUE
2 FROM DATABASE_PROPERTIES
3 WHERE PROPERTY_NAME LIKE '%CHARACTERSET';
PROPERTY_NAME PROPERTY_VALUE
查看本欄目更多精彩內容:http://www.bianceng.cnhttp://www.bianceng.cn/database/Oracle/
------------------------------ --------------------------------------------------
NLS_CHARACTERSET ZHS16GBK
NLS_NCHAR_CHARACTERSET AL16UTF16
SQL> SHOW PARAMETER DB_BLOCK_SIZE
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_block_size integer 16384
要遷移的資料分布在兩個資料表空間中:
SQL> SELECT TABLESPACE_NAME, FILE_NAME, BYTES/1024/1024/1024