根据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