我有一個複雜的查詢,該查詢連接到具有大量數據的表上。應用程序運行幾次後查詢超時。唯一的辦法,我可以得到它的工作是由重新啓動SQL服務器或運行:運行幾次SQL Server查詢超時後,只能修復DROPCLEANBUFFERS或重新啓動SQLServer
DBCC DROPCLEANBUFFERS;
有人可以給我的,我要尋找到有什麼事情的想法?我正在努力縮小需要解決的問題。有沒有辦法完全禁用查詢緩存?看起來緩存最終會導致超時。
我有一個複雜的查詢,該查詢連接到具有大量數據的表上。應用程序運行幾次後查詢超時。唯一的辦法,我可以得到它的工作是由重新啓動SQL服務器或運行:運行幾次SQL Server查詢超時後,只能修復DROPCLEANBUFFERS或重新啓動SQLServer
DBCC DROPCLEANBUFFERS;
有人可以給我的,我要尋找到有什麼事情的想法?我正在努力縮小需要解決的問題。有沒有辦法完全禁用查詢緩存?看起來緩存最終會導致超時。
看來你的查詢可能有過時的統計數據,嘗試更新的查詢中涉及的所有表的統計,今年提出的SQLServer在得到正確估計一個很好的機會,這也降低了一些補助
如果發生這種情況,即使更新統計後,嘗試微調查詢
更新統計,使用下面query..also嘗試用全掃描運行,即使這可能不是需要對所有情況
UPDATE STATISTICS tablename with fullscan;
如何更新統計信息? –
@BlakeRivell:查看已更新 – TheGameiswar
TheGame iswar提出更新統計數據是一個非常好的主意。儘管如此,即使更新統計數據緩解了超時問題,您也可能需要進一步調查。
這聽起來像是你正在得到一個查詢計劃,它只適用於發送給它的一些參數,這可能導致參數嗅探;特別是在數據嚴重偏斜的情況下。
您是否嘗試過將option (recompile)
添加到查詢或with recompile
如果它是一個過程?
您是否檢查過執行計劃?
參考:
極好的鏈接。 – TDP
SQL Server從不超時的查詢。您的應用是否取消了查詢。你爲什麼要標記'ssms'這個問題,是從Management Studio運行的查詢? SSMS也不會超時查詢。 –
你有一個性能問題,所以要分析它。 [如何分析SQL Server性能](http://rusanu.com/2014/02/24/how-to-analyse-sql-server-performance/)。 –