Sql-Server

在執行性能比較之前清除記憶體的 SQL Server 命令

  • April 30, 2020

在比較兩個不同查詢的執行時間時,清除記憶體以確保第一個查詢的執行不會改變第二個查詢的性能很重要。

在 Google 搜尋中,我可以找到以下命令:

DBCC FREESYSTEMCACHE
DBCC FREESESSIONCACHE
DBCC FREEPROCCACHE

事實上,我的查詢在多次執行後比以前花費了更實際的時間來完成。但是,我不確定這是推薦的技術。

最佳做法是什麼?

就個人而言,對於一個常見的查詢,第二次和後續的執行更重要。

您是在測試磁碟 IO 還是查詢性能?

假設您的查詢經常執行並且很關鍵,那麼您希望在現實生活條件下對其進行測量。而且您不想每次都清除產品伺服器記憶體…

如果你願意,你可以:

  • DBCC DROPCLEANBUFFERS從緩衝池中清除乾淨(未修改的)頁面 在此

之前CHECKPOINT先將任何臟頁面刷新到磁碟

  • DBCC FLUSHPROCINDB清除該數據庫的執行計劃

另見(在 DBA.SE 上)

引用自:https://dba.stackexchange.com/questions/10818