DB2 IMPORT 工具在載入大量資料時,會逐筆驗證約束、寫入日誌、觸發 Trigger,效能遠遜於 LOAD 工具。針對分區資料庫等大量匯入場景,可透過以下兩種方式大幅提升 IMPORT 效能。
對 db2uimpm 套件重新綁定並加入 INSERT BUF 選項,使匯入過程使用緩衝區批次插入。
db2 connect to sample
db2 bind db2uimpm.bnd insert buf
db2 import from myfile of del insert into mytable
在 IMPORT 命令的 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
| 方法 | 適用場景 | 預期提升 |
|---|---|---|
| INSERT BUF | 單一連線、中小量資料 | 減少客戶端/伺服端交互次數 |
| COMPOUND=n | 高延遲網路、大量資料、分區資料庫 | 顯著降低網路 round-trip,效果最明顯 |
| 兩者結合 | 極大量匯入 | 疊加效果,最佳化吞吐量 |
COMPOUND 值過大可能導致記憶體壓力,建議從 50~100 微調。IMPORT 仍逐列處理,效能上限受限;極大量建議改用 LOAD。db2split 或並行匯入可進一步提升。