2012-05-23 68 views

回答

2

緩衝區不在用戶指定的表中,或者按用戶存儲 - SQL Server無法有選擇地清除緩衝區,因爲它不知道哪些項目被保留用於哪些查詢;這樣做幾乎在每種情況下都會產生不必要的開銷(除了你現在要做的事情,對不起)。儘管如此,還是有選擇的。

有意見,但是,以改善這個問題,即使無法避免的問題:

  • 您可以(重新編譯)使用強制查詢找到一個新的計劃,但不會明確緩存。
  • 您可以運行每個查詢兩次,以查看數據緩衝後運行緩慢/快速的方式。
  • 您可以反覆交替使用這兩種方法,查看它們是否變得更快,以及速度差異收斂的方向。
  • 您可以在一兩天內或在服務器重置後運行它們。 (這是生產服務器偶爾會被重置的原因。)
  • This article對此類情況下的測試有其他想法。

    0

    如果停機時間沒有問題,您可以將數據庫脫機,然後立即將其聯機。

    5

    DBCC FREEPROCCACHE (plan_handle | sql_handle | pool_name)

    通過傳遞plan_handle否則我們將能夠cleare特定的SP或查詢的高速緩存中的其它選項。