在 SQL Server 2005 管理工作室中,我正在测试一个使用一些表变量的查询,其中一个表变量具有集群唯一约束。我注意到,当我包含实际执行计划来分析时,总执行时间实际上会减少很多。
原因是什么?我是否应该仅在包含执行计划的选项关闭时测试总执行时间。
谢谢!
最佳答案
说实话,我听起来有点奇怪。您确定您所看到的差异不是由缓存造成的吗? 我总是通过不包括执行计划来测试存储过程的性能,并且我会在每次运行之前清除缓存,以便进行公平的比较(在测试/开发数据库服务器上,而不是生产上)。
DBCC FREEPROCCACHE -- will clear the execution plan cache
DBCC DROPCLEANBUFFERS -- will clear the data cache
关于当包含执行计划时,SSMS 中的 SQL Server 查询速度更快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3996751/