DB2 成本基礎優化器雖強大,但在特定環境、查詢特徵與資料分布交互下,仍可能選擇次優計劃。優化準則讓使用者無需修改應用程式或資料庫配置,即可指導關鍵計劃屬性:表存取方法、索引選擇、聯結方法與順序。DB2 9.7 增強此基礎設施,新增 XML 專用準則 並擴展既有準則涵蓋 XML 運算子。
優化設定檔 為 XML 文件,遵循 COPS (Current Optimization Profile Schema) 規範,包含兩類準則:
STMTKEY(精確匹配查詢文本,允許空白差異)與 OPTGUIDELINES(指導計劃片段)。範例設定檔片段:
<OPTPROFILE VERSION="9.7.0.0">
<OPTGUIDELINES><REOPT VALUE="ALWAYS"/></OPTGUIDELINES>
<STMTPROFILE ID="Sample">
<STMTKEY SCHEMA="TPOX"><![CDATA[SELECT * FROM security WHERE XMLEXISTS(...)]]></STMTKEY>
<OPTGUIDELINES><XANDOR TABLE="SECURITY"/></OPTGUIDELINES>
</STMTPROFILE>
</OPTPROFILE>
CDATA 區塊處理 XML 特殊字元(<、>)。
SYSTOOLS.OPT_PROFILE 表:CALL SYSINSTALLOBJECTS('opt_profiles', 'C', '', '') 或手動 DDL。INSERT、IMPORT(含 LOB 檔案)或 LOAD。SET CURRENT OPTIMIZATION PROFILE = 'TPOX.PROFILE1'Profile Information 區塊確認套用設定檔與陳述式設定檔名稱;若現警告 SQL0437W (Reason code 13) 則表示準則套用失敗,需檢視診斷資訊(如 EXP0009W 表引用無效)。Optimized Statement 區塊取得。支援針對衍生表達式(如 XMLExists 謂詞轉換的內部表達式)指定存取路徑。準則中可混用 `TABLE` 與 `TABID` 屬性。| 準則 | 用途 | 關鍵屬性 |
|---|---|---|
| XISCAN | 強制/引導 XML 索引掃描 | TABLE/TABID(必填)、INDEX(可選,未指定則擇優)、FIRST="TRUE"(指定為聯結外層首表) |
| XANDOR | 啟用 XML 索引 AND/OR 策略(多索引合併) | TABLE/TABID |
| XSCAN | 指定 XML 表掃描(無索引路徑) | TABLE/TABID |
DB2 9.7 的 XML 優化準則基礎設施,賦予開發人員在不動應用碼的前提下,精準干預 XML 查詢執行計劃的能力。掌握設定檔結構、表識別技巧、XML 專用準則與驗證診斷流程,是釋放 pureXML 應用效能潛力的關鍵鑰匙。