Oracle expdp為什麼比exp快,原理是什麼
先看oracle 10g的官方文檔:
Database Utilities
Data Performance Improvements for Data Pump Export and Import
The improved performance of the Data Pump Export and Import utilities is attributable to several factors, including the following:
Multiple worker processes can perform intertable and interpartition parallelism to load and unload tables in multiple, parallel, direct-path streams.
--多個進程並行和直接路徑讀
For very large tables and partitions, single worker processes can choose intrapartition parallelism through multiple parallel queries and parallel DML I/O server processes when the external tables method is used to access data.
Data Pump uses parallelism to build indexes and load package bodies.
--可以並行的建索引和包
Dump files are read and written directly by the server and, therefore, do not require any data movement to the client.
--在服務器上操作,不需要將數據返回給客戶端,省去網絡的環節
The dump file storage format is the internal stream format of the direct path API. This format is very similar to the format stored in Oracle database datafiles inside of tablespaces. Therefore, no client-side conversion to INSERT statement bind variables is performed.
--導出的數據文件是block格式,不是exp的SQL語句
The supported data access methods, direct path and external tables, are faster than conventional SQL. The direct path API provides the fastest single-stream performance. The external tables feature makes efficient use of the parallel queries and parallel DML capabilities of the Oracle database.
--支持直接路徑讀,比轉換成SQL快
Metadata and data extraction can be overlapped during export.
--元數據和數據的提取可以同時執行
翻譯的不好,總結如下:
1.expdp是服務端程序,exp是客戶端程序,exp還需要網絡傳輸,這個很影響速度。
2.expdp讀的就是數據塊,exp是要轉換成SQL。
3.expdp可以並行導出數據、元數據和建索引、包,exp不行。
4.expdp采用的是直接路徑讀,exp是要通過SGA。