0
我正在使用MS SQL Server 2012.我試圖看到服務器中的優化,所以我不能只清除一切。如何清除已運行的最新選擇查詢的緩存? (或防止從緩存中選擇查詢)
任何建議如何我可以選擇查詢並清除緩存後?
(或防止其緩存效果會更好)
編輯:像它的運行的第一次
最希望得到的結果是測試的選擇查詢。
我正在使用MS SQL Server 2012.我試圖看到服務器中的優化,所以我不能只清除一切。如何清除已運行的最新選擇查詢的緩存? (或防止從緩存中選擇查詢)
任何建議如何我可以選擇查詢並清除緩存後?
(或防止其緩存效果會更好)
編輯:像它的運行的第一次
最希望得到的結果是測試的選擇查詢。
您可以查詢sys.dm_exec_connections
以獲取給定連接的上次執行查詢的句柄,然後用DBCC FREEPROCCACHE
驅逐該計劃。確保你在另一個連接上執行此操作。
或者,使用WITH RECOMPILE
或OPTION(RECOMPILE)
不緩存計劃在所有:
我想這在我的本地機器現在。當我運行以下內容: 'CHECKPOINT; GO DBCC DROPCLEANBUFFERS; GO DBCC FREEPROCCACHE; GO DBCC FREESESSIONCACHE; GO' 它首先需要一分鐘的時間來完成查詢,當我運行** DBCC FREEPROCCACHE **或** RECOMPILE **東西時,第二次查詢時間不到一秒鐘。是否還有別的東西被保存而不是緩存,使得它如此之快? (第二次運行時減少1秒) – MilkTea027
是的,數據被緩存,每次重複檢查點/丟棄緩衝區例程。 – dean
本地沒問題,但在服務器,但我不能清除所有的緩存..有沒有辦法讓特定的查詢運行就像它的第一次查詢? – MilkTea027