在比较两个不同查询的执行时间时,清除缓存以确保第一个查询的执行不会改变第二个查询的性能很重要。
在 Google 搜索中,我可以找到以下命令:
DBCC FREESYSTEMCACHE DBCC FREESESSIONCACHE DBCC FREEPROCCACHE
事实上,我的查询在多次执行后比以前花费了更实际的时间来完成。但是,我不确定这是推荐的技术。
最佳做法是什么?
就个人而言,对于一个常见的查询,第二次和后续的执行更重要。
您是在测试磁盘 IO 还是查询性能?
假设您的查询经常运行并且很关键,那么您希望在现实生活条件下对其进行测量。而且您不想每次都清除产品服务器缓存…
如果你愿意,你可以:
DBCC DROPCLEANBUFFERS
CHECKPOINT
DBCC FLUSHPROCINDB