我的SQL Server 2005存在問題,其中存儲過程特別是運行大容量插入的過程有時需要很長時間才能執行。這個存儲過程,我們稱之爲DatabaseUpdate,需要約2秒才能完成。但是,在20-40%的時間內,花費的時間遠遠超過這個時間,並且很常見的是它會在30秒後超時。間歇SQL Server超時和存儲過程的執行時間差異很大
有什麼奇怪的是,我有一個非常控制的環境。我目前正在查看的日誌顯示了一段時間,其中定期發生完全相同的事件。有少數客戶端,他們都基於定時器發出請求,這些機器都運行原子時鐘同步應用程序。所以我可以幾乎肯定地說,每五分鐘發生一次相同的事件,但是我的存儲過程將一個100Kb文件導入到數據庫中,其執行時間從1.5-30秒改變爲不同。
我以前沒有注意到,因爲我只看到超時錯誤,就是在較長的執行時間正在發生的所有其他更新,所以時間是這樣的:
10:30 2062毫秒 10 :35 24250毫秒 10:40 1921年毫秒 10:45 25703毫秒 10:50 1734毫秒 10:55 25406毫秒 11:00 1625毫秒
任何想法?
我有,並且正在運行跟蹤。這些文件的大小始終在20Kb左右,並且我確認了這個持續時間與讀取和寫入的次數無關。 – patrick 2009-10-07 16:30:36
數據庫的大小如何?是否發生自動增長事件以適應批量插入? – 2009-10-07 16:31:51
我看不到發生自動增長事件。您能否澄清一下您將如何驗證:「存儲過程的每次調用都使用相同的」實際「而不是」預計「執行計劃。」我比較了「展示計劃文本(未編碼)」事件,並沒有什麼區別,但你是否指的是其他內容。 – patrick 2009-10-07 19:44:57