我們有一臺作爲數據庫服務器運行的Windows Server 2003(x64)。 該數據庫配備有32GB的RAM數據庫服務器無故100%
通常數據庫內存使用率(任務管理器)在5-10%之間。 然而,有時候數據庫會突然突然增加到100%並且保持在那裏,並且沒有任何代碼或執行的改變。
各種研究,付費或由我,指出一個單一的存儲過程。 當數據庫爲100%時,禁用此過程將使數據庫恢復正常。
現在這聽起來很明顯,但這裏是奇怪的部分。
存儲過程已優化,內存使用量(來自執行計劃)爲0.01,這非常好。通常執行存儲過程會立即返回結果集。我還付了RackSpace Fanatic Support DBA來查看這個,他說他認爲存儲過程沒有問題。
現在額外的奇怪的一點。
- 運行SP是即時的。
- 當DB爲100%時,運行SP,在分鐘後繼續執行分鐘。
- 禁用SP,將數據庫降至5-10%。
- 雖然SP被啓用,DB是100%,如果我打開一個新的查詢窗口,並運行從SP確切的代碼,但作爲一個查詢,而不是作爲SP,結果瞬間再次回到
所以,雖然乍一看,這聽起來SP是需要優化的,SP中的實際代碼並不是問題。
我很絕望!
可能是參數嗅探,你手動使用的參數與應用程序運行它的參數不一樣,但我認爲你必須實際發佈一些關於存儲過程的代碼/細節。 – Andrew 2009-12-02 10:29:42
安德魯你說得對。 我向SP添加了RECOMPILE,並且一切都運行良好! – 2009-12-02 10:44:24
把它變成一個帖子,所以我可以給你答案 – 2009-12-02 10:45:43