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

使用 db2look 重建優化器存取路徑(三):單分區實戰演練與優化層級影響

     編輯:DB2 教學

實驗環境

  • OS: Windows 2000,DB2 V8.2 FP8 ESE 單分區
  • 生產庫: SAMPLE,測試庫: DUMMYDB(同代碼頁/地區/排序序列)

生產環境基準存取路徑

查詢:SELECT * FROM org a, staff b WHERE a.deptnumb=b.dept AND b.dept=15

Access Plan:
Total Cost: 25.8823
Query Degree: 1
  RETURN
   HSJOIN (Hash Join)
    TBSCAN STAFF
    TBSCAN ORG

測試環境重建步驟

  1. 收集生產資訊:
    db2look -d SAMPLE -l -o storage.out
    db2look -d SAMPLE -f -fd -o config.out
    db2look -d SAMPLE -e -a -m -t ORG SALES -o table.ddl
  2. 修改輸出檔:將 CONNECT TO SAMPLE 改為 CONNECT TO DUMMYDB。
  3. 執行 storage.out、config.out、table.ddl。
  4. 調整 config.out 中 dft_queryopt 從 5 改為 3(故意製造差異)。
  5. 重啟實例、建立 EXPLAIN 表、執行同樣查詢並 db2exfmt。

結果對比

環境優化層級Join 方式Total Cost
生產 (SAMPLE)5HSJOIN (Hash Join)25.8823
測試 (DUMMYDB)3MSJOIN (Merge Scan Join)25.8843

僅優化層級不同即導致 Join 策略改變。將測試庫 dft_queryopt 改回 5 後,存取路徑完全一致。

關鍵檢查清單

  • DB HEAP、STMTHEAP、NUM_FREQVALUES、NUM_QUANTILES
  • 註冊表變數(DB2_ANTIJOIN、DB2_HASH_JOIN 等)
  • 表空間 PREFETCHSIZE、EXTENTSIZE、OVERHEAD、TRANSFERRATE
  • 緩衝池大小(db2fopt)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved