expdp = exp + direct mode + parallel ?
以下是Anysql 的一篇文章, 比較了多種資料操作方式的速度, 其中提到expdp = exp + direct mode + parallel , expdp 預設方式下就是採用 直接路徑匯出的, 不過parallel 似乎必須設定才會生效吧 ? 也就是說必須設定parallel >0 才能使用到並行的 。 那麼使用expdp 和 exp direct=y 應該速度相當, 不過很多實驗還是證明 expdp速度要快於exp direct=y , 難道還有其他區別 ? 他們的direct 又有區別 ?
還有一個問題 : exp direct=y 是 " 直接從磁碟讀取資料到匯出session 的UGA中, 跳過了SQL命令處理層,避免了不必要的資料轉化 " , 這裡的不必要的資料轉化是不是就是 SQL Select 語句從datafile讀取到buffer cache 中 ? 還是還有其他步驟被避免了 ? 從磁碟讀取的block匯出到匯出session 的UGA 的時候, 應該還需要SQL表示式將block中的資料行讀出返回給使用者 ?
---------------------------------------------------------------------------------------------------------------------------
exp direct=y
直接匯出模式,資料直接從磁碟中讀取到匯出session的UGA中,跳過了SQL命令處理層。避免了不必要的資料轉換, 然後將紀錄返回給匯出客戶端,然後寫到dump檔案 跳過了SQL命令處理層表示DIRECT匯出不支援QUERY選項。
而傳統預設下的exp
傳統匯出模式使用SQL SELECT語句抽取表資料。將資料從磁碟中讀入到buffer cache緩衝區中,並應用SQL表示式,將紀錄返回給匯出客戶端,然後寫到dump檔案。
---------------------------------------------------------------------------------------------------------------------------
昨天測試了一下expdp, exp和sqluldr2的效能, 測試機器為Linux, 機器主頻為3G, 測試時基本上sqluldr2的單個程式佔用了一整個CPU, 也就是CPU的主頻限制了sqluldr2和exp的速度. 以sqluldr2為參照物, 各個工具的速度對比結果如下.
Direct模式匯出可以得到一倍的效能提升, 但查遍了google和metalink, 都沒有找到direct unload有關的OCI API函式, 只找到一堆direct load有關的OCI API. 不知道有誰對這個有所瞭解? 難道是Oracle故意不開放這部份API, 以提升將資料遷移到其他型別資料庫的成本?
有點想搞清楚exp和expdp中的direct模式是如何程式設計的, 用以改進一下sqluldr2.
還有一個問題 : exp direct=y 是 " 直接從磁碟讀取資料到匯出session 的UGA中, 跳過了SQL命令處理層,避免了不必要的資料轉化 " , 這裡的不必要的資料轉化是不是就是 SQL Select 語句從datafile讀取到buffer cache 中 ? 還是還有其他步驟被避免了 ? 從磁碟讀取的block匯出到匯出session 的UGA 的時候, 應該還需要SQL表示式將block中的資料行讀出返回給使用者 ?
---------------------------------------------------------------------------------------------------------------------------
exp direct=y
直接匯出模式,資料直接從磁碟中讀取到匯出session的UGA中,跳過了SQL命令處理層。避免了不必要的資料轉換, 然後將紀錄返回給匯出客戶端,然後寫到dump檔案 跳過了SQL命令處理層表示DIRECT匯出不支援QUERY選項。
而傳統預設下的exp
傳統匯出模式使用SQL SELECT語句抽取表資料。將資料從磁碟中讀入到buffer cache緩衝區中,並應用SQL表示式,將紀錄返回給匯出客戶端,然後寫到dump檔案。
---------------------------------------------------------------------------------------------------------------------------
昨天測試了一下expdp, exp和sqluldr2的效能, 測試機器為Linux, 機器主頻為3G, 測試時基本上sqluldr2的單個程式佔用了一整個CPU, 也就是CPU的主頻限制了sqluldr2和exp的速度. 以sqluldr2為參照物, 各個工具的速度對比結果如下.
expdp = (parallel degree – 1) * 2 * sqluldr2這時發現, expdp其實是exp的升級版本, exp + direct mode + parallel, 因為要支援並行生成幾個檔案, 所以Oracle透過控制後觀的並行程式來實現, 如果檔案是生成在客戶端, 則沒有辦法控制後臺程式來並行生成檔案, 這個是expdp的檔案只能生成在伺服器端的技術原因, 並且需要Oracle內部的目錄物件來控制檔案存放位置. 另外一個原因據說是因為安全, 匯出檔案並不表示得到了資料.
exp direct = 2 * sqluldr2
89exp = 1 * sqluldr2
Direct模式匯出可以得到一倍的效能提升, 但查遍了google和metalink, 都沒有找到direct unload有關的OCI API函式, 只找到一堆direct load有關的OCI API. 不知道有誰對這個有所瞭解? 難道是Oracle故意不開放這部份API, 以提升將資料遷移到其他型別資料庫的成本?
有點想搞清楚exp和expdp中的direct模式是如何程式設計的, 用以改進一下sqluldr2.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-666058/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- direct-path [insert] parallelParallel
- expdp五種mode
- EXPDP的parallel引數Parallel
- oracle expdp中的parallelOracleParallel
- exp與expdp區別
- expdp\impdp及exp\imp 詳解
- exp/imp與expdp/impdp區別
- 【Mysql】Last_Errno: 1755--parallel mode errorMySqlASTParallelError
- exp/expdp與imp/impdp的區別
- EXP/IMP和EXPDP/IMPDP的區別
- oracle 10g imp/exp IMPDP/EXPDPOracle 10g
- 【EXP】資料庫只讀模式下如何使用exp和expdp資料庫模式
- 【DB】Direct Path EXP Corrupts The Dump If An Empty Table Partition Exists
- EXPDP/IMPDP 中的並行度PARALLEL引數並行Parallel
- EXP COMPRESS以及EXP/IMP EXPDP/IMPDP匯入表結構注意
- exp|imp和expdp|impdp以及sqlldr視訊SQL
- 理解exp, imp 使用direct=y 及imp commit=yMIT
- Direct Path Insert與APPEND, PARALLEL的梳理與小結APPParallel
- 抽取exp/expdp匯出檔案頭的資訊
- exp/expdp imp/impdp的使用【實戰實用】
- exp/imp expdp/impdp Tables 萬用字元 % 的使用字元
- exp工具的direct和query衝突以及程式補充
- 【EXPDP】運用PARALLEL 和FILESIZE引數提高備份效率Parallel
- EXP Or EXPDP時hang住問題,MOS解決方案
- Oracle的expdp/impdp工具和exp/imp工具比較Oracle
- [轉載] expdp, exp和sqluldr2 速度測試SQL
- EXP,EXPDP資料匯入本地效能測試
- 因expdp時parallel不當也會引起ORA-39095Parallel
- 終止imp/exp和expdp/impdp程式執行的方法
- [20180224]理解exp direct匯出操作.txt
- expdp匯出時卡死 Could not increase the asynch I/O limit to for SQL direct I/OMITSQL
- exp/imp出現錯誤通過expdp/impdp來解決
- exp/imp expdp/impdp Tables 萬用字元 % 的使用【Blog 搬家】字元
- MySQL案例01:Last_SQL_Errno: 1755 Cannot execute the current event group in the parallel modeMySqlASTParallel
- 檢視dmp檔案是exp還是expdp匯出來的
- exp和expdp的filesize引數的使用--匯出多個檔案
- EXP、IMP、SQLLOADER、EXPDP、IMPDP、DBMS_METADATA、SQLPLUS等方面SQL
- ORACLE關於如何是exp匯出還是expdp並檢視資訊Oracle