DB2 Information Integrator (DB2 II) 整合 SQL Server、Oracle、Informix、Sybase、DB2 z/OS/iSeries/LUW 等異構源。雖提供統一 SQL 訪問,但優化器面臨遠端統計不準、函數下推不支援、排序序列不一致、網絡傳輸成本等新變數。DBA 必須掌握聯邦專屬調優工具與策略。
聯邦對象在 SYSCAT.TABLES 中 TYPE='N'(暱稱)。db2expln -g 輸出中 SHIP 關鍵字標識下推處理。Distributed Substatement 顯示發送至遠端的重寫 SQL、使用的暱稱、遠端伺服器版本。
優化器盡量下推,但受限於:
最常見阻礙下推原因:遠端統計過時或缺失。流程:
NNSTAT 預存程序刷新本地目錄關鍵選項:
CPU_RATIO:0.1 表示遠端算力為本地 10 倍,誘導優化器多下推DB2_MAXIMAL_PUSHDOWN:'Y' 使優化器偏好減少網絡傳輸策略SET SERVER 臨時切換測試NUMBER(38,0) → DB2 INTEGER,消除隱式轉換,啟用遠端連接NUMERIC_STRING 'Y':指示字符列存純數字,允許遠端排序下推| 工具 | 用途 |
|---|---|
db2expln -g | 圖形化訪問計劃,識別 SHIP 節點 |
db2 -l logfile -tvf sqlfile | 記錄查詢起止時間 |
db2batch -d db -f sqlfile | 基準測試,輸出詳細計時 |
| Snapshot / UDF | 監控聯邦查詢所有遠端片段、資源消耗 |
SET SERVER OPTION | 會話級臨時修改伺服器選項,無需 DDL |
SET PASSTHRU | 繞過聯邦引擎直連遠端,驗證權限/性能基線 |
聯邦查詢調優核心在於:看清下推邊界、修準遠端統計、用好伺服器/暱稱選項、善用監控工具閉環驗證。DBA 仍是性能最終守門人。