DB2 for Linux, UNIX, and Windows 9.7 版

使用 RUNSTATS

最佳化工具使用來自資料庫的型錄表格,以取得資料庫、資料庫中的資料數量以及其他性質的相關資訊,並使用此資訊來選擇存取資料的最佳方式。

如果無法使用現行統計值,那麼最佳化工具可能會根據不正確的預設統計值來選擇一個低效的存取計劃。

高度建議您使用 RUNSTATS 指令,以在表格與索引中收集現行統計資料,尤其是在最後一次執行 RUNSTATS 指令之後發生重要更新活動或建立新的索引時。這為最佳化工具提供最精確的資訊,以決定最佳的存取計劃。

更新您的表格之後,請務必使用 RUNSTATS﹔否則,最佳化工具可能會將該表格視為空白表格。如果「運算子明細」視窗中的基數等於零,則此問題是顯而易見的。在這種情況下,請完成表格更新、重新執行 RUNSTATS 指令,然後重建受影響表格的解譯 Snapshot。

備註:
  • 在查詢可能存取的所有表格與索引上使用 RUNSTATS
  • 分位與常用統計值決定不均衡配送資料的時間。 若要更新這些值,請在表格上使用具有 WITH DISTRIBUTION 子句的 RUNSTATS
  • 除統計值之外,其他因數 (例如合格橫列的次序、表格大小以及緩衝池大小) 可能也會影響選取存取計劃的方式。
  • 執行 RUNSTATS 指令或變更配置參數之後,應該重新連結應用程式(並選擇性地重新解譯其陳述式)。

runstats 指令 (可以從 CLP 提示輸入) 可以提供不同的統計值層次,如下列語法中所示:

基本統計值

表格:
RUNSTATS ON TABLE 表格名稱
索引:
RUNSTATS ON TABLE 表格名稱 FOR INDEXES ALL
表格及索引:
RUNSTATS ON TABLE 表格名稱 AND INDEXES ALL

加強統計值

表格:
RUNSTATS ON TABLE 表格名稱 WITH DISTRIBUTION
索引:
RUNSTATS ON TABLE 表格名稱 FOR DETAILED INDEXES ALL
表格及索引:
RUNSTATS ON TABLE 表格名稱 WITH DISTRIBUTION AND DETAILED INDEXES ALL
註: 在上述每一個指令中,表格名稱必須與綱目名稱一樣完整。