2014-07-16 142 views
1

數據庫不斷運行OLTP。大約每週一次(有時更多,有時更少),一個存儲過程通過CPU消耗使整個數據庫服務器停止。我通過重新編譯存儲過程來緩解這個問題。這不再是一個可行的解決方案,需要援助來確定原因和解決方案。任何指導將不勝感激。我的假設是,一個「好」的執行計劃正在失去,並被一個「不好」的執行計劃取代。SQL Server丟失執行計劃

+1

您可以添加「一個存儲過程」的細節,代碼,執行計劃,有一些更詳細的東西? – swestfall

+2

你可能在dba.stackexchange.com有更好的運氣 – JiggsJedi

回答

1

我們的假設是,一個「好」的執行計劃正在失去,並被一個「壞」的執行計劃取代。

更可能的情況是,一次「良好」執行現在是對當前數據集合的「壞」計劃。

一些事情,可能會有所幫助:

  • 確保統計是最新(每天如果沒有更頻繁)
  • 執行例行(每天)維護,以減少碎片

你不明白爲什麼重新編譯不是一個可行的選擇,但也可能有幫助。

所有這些都可以被自動化,所以你不必看管系統。