前言
效能調校非試誤法可為,微軟建議遵循 DETECT 六階段流程:Discover(發現)→ Explore(探究)→ Track(提案)→ Execute(執行)→ Check(復查)→ Tie up(收尾),建立可重複、可累積經驗的標準化流程。
階段一:發現問題
- 目標:簡明描述問題、詳述現象、記錄細節
- 關鍵提問:
- 問題能否用一句話說清?
- 使用者的基線與期望值為何?
- 避免被大量雜訊資訊誤導,先整理共識再行動
階段二:探究原因
- 蒐集證據,建立「問題發生原因」的假設與運行模型
- 工具箱:SSMS、SqlDiag、效能計數器、事件檢視器、SQL Profiler、Performance Dashboard Reports、DMV/DMF
- 重點:廣度優先,掌握全貌,避免過早深入單一事件導致視野狹窄
- 若發現明顯硬體故障、記憶體耗盡等嚴重問題,可直接跳往深入分析
階段三:提案可能解決方案
- 深入分析前兩階段數據,擬定對應策略
- 參考線上文件、KB、社群討論、專家諮詢,避免閉門造車
- 產出兩份計畫:
- 驗證假設的測試計畫
- 解決問題的實施計畫
- 謀定而後動,切勿衝動執行
階段四:執行最可能方案
- 依計畫執行,隨時監控系統反應
- 若新證據推翻假設,立即修正或回退計畫
- 原則:Spend time now to save time later,每一步謹慎穩健
- 先驗證假設成立,再實施解決方案
階段五:確認成效
- 重新蒐集數據,驗證假設是否成立、瓶頸是否解除
- 觀察瓶頸轉移現象,若主瓶頸解除則針對次要瓶頸繼續循環
- 若結果不如預期,冷靜複盤錯誤點,喝杯咖啡再重新規劃
階段六:收尾與持續追蹤
- 檢查邊際效應(如:新增索引導致寫入效能下降)
- 確認是否根治而非頭痛醫頭
- 建立持續監控計畫:關鍵計數器、異常閾值、應對預案
- 文檔化整個過程,沉澱團隊知識資產
結語
DETECT 非僵化流程,核心在於有結構、可追蹤、可迭代。依此框架調適成專屬方法論,才能在每次調校中累積經驗、提升團隊能力。