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

使用 db2look 重建優化器存取路徑(二):DDL 產生與 db2exfmt 驗證

     編輯:DB2 教學

產生完整 DDL 含統計資料

db2look -d <dbname> -e -a -m -o db2look.out
  • -e:產生 DDL
  • -a:所有 Schema
  • -m:關鍵,包含 UPDATE SYSSTAT.TABLES/INDEXES/COLUMNS 統計資料更新指令

db2exfmt 輸出關鍵區段對照

執行 db2exfmt -d DB -g TIC -w -1 -n % -s % -# 0 -o output.txt 後,重點比對:

Database Context:
  CPU Speed: 6.523521e-07
  Buffer Pool size: 50000      <-- 來自 db2fopt opt_buffpage
  Sort Heap size: 10000        <-- 來自 db2fopt opt_sortheap
  Database Heap size: 5120
  Lock List size: 1000
  ...
Package Context:
  Optimization Level: 5        <-- dft_queryopt
  Blocking: Block All Cursors
  Isolation Level: Cursor Stability
  ...
Arguments:
  ENVVAR: DB2_ANTIJOIN=yes
  ENVVAR: DB2_INLIST_TO_NLJN=yes
  STMTHEAP: 2048

註冊表變數補充

db2look -f 不會列出所有影響優化器的註冊表變數,需人工補充並確保測試/生產一致。

驗證流程

  1. 在測試庫執行 storage.out、config.out、db2look.out(或 table.ddl)。
  2. 建立 EXPLAIN 表(EXPLAIN.DDL)。
  3. 以 SET CURRENT EXPLAIN MODE EXPLAIN 執行目標查詢。
  4. 用 db2exfmt 產出存取路徑,與生產環境輸出逐行比對。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved