我從一個網站查詢了15到30秒,同時查詢從SQL Server Management studio運行了0.5秒。我無法使用SQL Profiler查看任何鎖定問題,也無法從SSMS手動重現延遲。一週前,我分離並重新連接了數據庫,似乎奇蹟般地解決了這個問題。今天,當問題重新擡頭時,我試圖重建索引。這也解決了這個問題。不過,據我所知,我認爲這不一定是索引問題,因爲索引不會自動重建爲簡單的分離/附加。SQL Server查詢在ADO.NET中運行速度比在SSMS中慢
任何想法可能會導致延遲?我的第一個想法是,也許一些參數嗅探存儲過程被調用(表示存儲過程運行CTE,如果重要的話)導致了一個錯誤的查詢計劃,這將解釋問題的間歇性。由於分離/重新連接和索引重建在理論上應該使緩存查詢計劃無效,這是有道理的,但我不確定如何驗證這一點。此外,爲什麼不通過SSMS手動運行相同的查詢(直接從具有完全相同參數的SQL事件探查器複製)顯示相同的延遲?
有什麼想法?
是SSMS傳遞一些提示或不同的連接字符串比ADO.net的方式嗎? – shahkalpesh 2009-11-17 18:12:40
是的,我連接不同的憑據。不幸的是,目前這個問題已經消失,所以我不能用相同的連接設置進行測試,直到問題再次出現。 – Chris 2009-11-17 18:56:13
@Chris:你可以在你的案例中發表你自己的發現和答案嗎? – shahkalpesh 2009-11-18 05:57:25