首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> DB2 資料庫 >> DB2 教學

三招大幅提升 DB2 IMPORT 命令效能:Buffered Insert、COMPOUND 與 APPEND MODE

     編輯:DB2 教學

適用場景

分區資料庫環境(DPF)下,大量資料匯入時的效能優化。版本支援:DB2 7.x、8.1 及以上跨平台版本。

方法一:啟用 Buffered Insert(需重新綁定套件)

DB2 IMPORT 內部使用的套件 db2uimpm.bnd 預設不啟用緩衝插入。透過 INSERT BUF 選項重綁,可批次累積資料再發送至分區,大幅減少網路往返。

db2 connect to <資料庫名>
db2 bind db2uimpm.bnd blocking all insert buf

db2uimpm.bnd 位於 sqllib\bnd 目錄。重綁後後續所有 IMPORT 自動受益。

方法二:使用 COMPOUND 參數批次提交

指定 COMPOUND=N 後,IMPORT 每 N 筆資料才等待 SQL 回傳結果,而非逐筆同步。預設 N=1(逐筆)。

db2 import from data.ixf of ixf modified by compound=100 insert into target_table

上例每 100 筆為一批次,顯著降低客戶端/伺服端交互開銷。N 值建議 100~1000,視記憶體與記錄檔大小調整。

方法三:將目標表設為 APPEND MODE

若表中已有資料,改用附加模式可跳過空間搜尋,直接在高水位線後寫入:

db2 alter table target_table append on

配合 IMPORT 使用,避免頁面分裂與重組,特別適合歷史表、日誌表等持續追加場景。

效能對比示意

IMPORT 效能優化示意圖

綜合建議

技術適用條件預期收益注意事項
Buffered InsertDPF 環境網路往返減少 80%+需重綁套件,影響全例 IMPORT
COMPOUND=N所有環境隨 N 線性提升N 過大可能增加記錄檔壓力
APPEND MODE表已有資料、持續追加插入速度提升 30~50%不支援 REORG 回收空間,需定期監控

總結

三大技巧可疊加使用:先重綁啟用 Buffered Insert,匯入時加上 COMPOUND=100,目標表開啟 APPEND ON。實測在 TB 級資料匯入中,綜合效能可提升 3~5 倍,是 DB2 大量資料載入的必備優化組合拳。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved