每個數據庫管理員都會面臨數據導入的問題,這有可能發生在數據庫的新老移植過程中,或者是在數據庫崩潰後的恢復重建過程中,還有可能是在創建測試數據庫的模擬環境過程中,總之作為一名合格的數據庫管理員,你應該做好接受各種數據導入請求的技術儲備,同時還要盡量滿足人本能的對導入速度的苛求。本文僅針對 Oracle 數據庫所提供的加速數據導入的各種特性和技術進行探討,其中的一些方法也可以轉化應用於其他數據庫。以下七種數據導入方法哪個最適用需要針對具體情況具體分析,我也附帶列舉了影響導入速度的各種因素供斟酌。為了比較各種數據導入方法的效果,我創建了示例表和數據集,並用各種方法導入示例數據集來計算總體導入時間和導入進程占用 CPU 時間,這裡得出的時間僅供參考。需要說明的是,建議你使用 Oracle 9i 企業版數據庫,當然你也可以嘗試使用 Oracle 7.3 以上的標准版數據庫。本文使用的機器配置為:CPU Intel P4,內存 256M,數據庫 Oracle 9i 企業版。
示例表結構和數據集
為了演示和比較各種數據導入方法,我假定數據導入任務是將外部文件數據導入到 Oracle 數據庫的CALLS表中,外部數據文件包含十萬條呼叫中心記錄,將近 6MB 的文件大小,具體的數據示例如下:
82302284384 2003-04-18:13:18:58 5001 投訴 三包維修質量 82302284385 2003-04-18:13:18:59 3352 咨詢 供水熱線的號碼 82302284386 2003-04-18:13:19:01 3142 建議 增設公交線路
接受導入數據的表名是 CALLS,表結構如下:
Name Null? Type Comment CALL_ID NOT NULL NUMBER Primary key CALL_DATE NOT NULL DATE Non-unique index EMP_ID NOT NULL NUMBER CALL_TYPE NOT NULL VARCHAR2(12)<