最近發現使用直接導出模式direct=y exp比傳統模式導出快很多而且似乎也不會遇見什麼bug(至今沒有遇見過)
oracle提供種模式導出表數據傳統模式CONVENTIONAL PATH和直接模式DIRECT PATH有direct指定
CONVENTIONAL PATH EXPORT 比較DIRECT PATH EXPORT
====================================================
差異
Conventional path Export
傳統導出模式使用SQL SELECT語句抽取表數據將數據從磁盤中讀入到buffer cache緩沖區中並應用SQL表達式將紀錄返回給導出客戶端然後寫到到處文件
Direct path Export
直接導出模式數據直接從磁盤中讀取到導出session的UGA中跳過了SQL命令處理層避免了不必要的數據轉換 然後將紀錄返回給導出客戶端然後寫到到處文件 跳過了SQL命令處理層表示DIRECT導出不支持QUERY選項
性能
Direct Export 比Conventional Export要快很多在實際應用中如果直接模式導出需要時間N傳統模式導出則需要*N到*N之間
當Direct Export 的時候設置大的RECORDLENGTH(length of IO record) 參數可以加快導出最大k
exp userid=system/manager full=y direct=y recordlength=
file=exp_fulldmp log=exp_fulllog
imp userid=system/manager full=y recordlength=
file=exp_fulldmp log=imp_fulllog
Direct 模式導出並不影響導入數據的速度導入數據與傳統模式花費時間一樣
限制
導出表空間必須使用傳統模式
含有LOB對象的表不支持直接導出模式
直接導出不支持QUERY
直接導出模式使用RECORDLENGTH設置一次可以導出數據的量傳統模式使用buffer設置
低版本直接導出模式要求導出客戶端和數據庫字符集設置一致
直接導出模式bug比傳統模式要多但由於其導出數據在性能上的優勢仍然要多加使用
From:http://tw.wingwit.com/Article/program/Oracle/201311/18487.html