面對大量資料匯入,預設 IMPORT 逐筆 Commit 效能極差。本文提供三種調優手法,實測可縮短 80% 以上匯入時間。
重新綁定 db2uimpm.bnd 並加入 INSERT BUF 選項:
DB2 CONNECT TO <DB_NAME>
DB2 BIND DB2UIMPM.BND BLOCKING ALL INSERT BUF
檔案位於 sqllib\bnd\db2uimpm.bnd。此設定讓代理端批次緩衝再送伺服器,減少網路往返。
DB2 IMPORT FROM <FILE> OF IXF
MODIFIED BY COMPOUND=100
INSERT INTO <TABLE>;
每 100 筆才等待伺服器回應,而非逐筆同步。視記憶體與日誌空間調整 50~500 之間。
ALTER TABLE <TABLE> ACTIVATE NOT LOGGED INITIALLY WITH EMPTY TABLE;
ALTER TABLE <TABLE> APPEND ON;
APPEND ON 讓新資料直接寫入高水位線之後,避免尋找可用頁面的 FSC 掃描開銷。匯入完成後可 APPEND OFF 恢復正常。
LOAD 優於 IMPORT(但需處理 Backup Pending)。IMPORT + COMPOUND=100 + APPEND ON 為最佳平衡。INSERT BUF 綁定選項。