IMPORT 在載入資料時會驗證所有約束條件、記錄完整日誌、觸發 Trigger,導致大量資料匯入時效能明顯低於可繞過約束、最小化日誌的 LOAD 工具。但在必須使用 IMPORT 的場景(如需觸發器邏輯、約束驗證),可透過以下兩種方式大幅提升效能,尤其對分區資料庫效果顯著。
對 db2uimpm 套件重新 BIND 並加入 INSERT BUF 選項,用插入緩衝區,批次寫入減少網路往返。
db2 connect to sample
db2 bind db2uimpm.bnd insert buf
db2 import from myfile of del insert into mytable
在 MODIFIED BY 子句指定 COMPOUND=n(1~100),將 n 筆 INSERT 合併為一個複合語句發送,大幅減少網路通訊開銷。
db2 connect to sample
db2 import from myfile of del modified by compound=100 insert into mytable
COMPOUND 通常收益更明顯;INSERT BUF 需測試確認效果。COMPOUND 過大可能增加鎖持有時間,建議從 50~100 起測。核心原理:皆針對「網路往返次數」與「日誌寫入頻率」這兩大瓶頸進行批次化優化。