我想查看選項以改進我的查詢。DBCC FREEPROCCACHE和DBCC DROPCLEANBUFFERS同樣適用於特定範圍
有時,我想在生產服務器上執行測試,因此我無法使用DBCC FREEPROCCACHE 和DBCC DROPCLEANBUFFERS來清除整個服務器緩存。
能否請您與我分享一下,只爲我的連接/範圍做一種「緩存清理」的方式?
謝謝。
我想查看選項以改進我的查詢。DBCC FREEPROCCACHE和DBCC DROPCLEANBUFFERS同樣適用於特定範圍
有時,我想在生產服務器上執行測試,因此我無法使用DBCC FREEPROCCACHE 和DBCC DROPCLEANBUFFERS來清除整個服務器緩存。
能否請您與我分享一下,只爲我的連接/範圍做一種「緩存清理」的方式?
謝謝。
緩衝區不在用戶指定的表中,或者按用戶存儲 - SQL Server無法有選擇地清除緩衝區,因爲它不知道哪些項目被保留用於哪些查詢;這樣做幾乎在每種情況下都會產生不必要的開銷(除了你現在要做的事情,對不起)。儘管如此,還是有選擇的。
有意見,但是,以改善這個問題,即使無法避免的問題:
This article對此類情況下的測試有其他想法。
如果停機時間沒有問題,您可以將數據庫脫機,然後立即將其聯機。
DBCC FREEPROCCACHE (plan_handle | sql_handle | pool_name)
通過傳遞plan_handle否則我們將能夠cleare特定的SP或查詢的高速緩存中的其它選項。