Sql-Server
在執行性能比較之前清除記憶體的 SQL Server 命令
在比較兩個不同查詢的執行時間時,清除記憶體以確保第一個查詢的執行不會改變第二個查詢的性能很重要。
在 Google 搜尋中,我可以找到以下命令:
DBCC FREESYSTEMCACHE DBCC FREESESSIONCACHE DBCC FREEPROCCACHE
事實上,我的查詢在多次執行後比以前花費了更實際的時間來完成。但是,我不確定這是推薦的技術。
最佳做法是什麼?
就個人而言,對於一個常見的查詢,第二次和後續的執行更重要。
您是在測試磁碟 IO 還是查詢性能?
假設您的查詢經常執行並且很關鍵,那麼您希望在現實生活條件下對其進行測量。而且您不想每次都清除產品伺服器記憶體…
如果你願意,你可以:
DBCC DROPCLEANBUFFERS
從緩衝池中清除乾淨(未修改的)頁面 在此之前
CHECKPOINT
先將任何臟頁面刷新到磁碟
DBCC FLUSHPROCINDB
清除該數據庫的執行計劃另見(在 DBA.SE 上)