我有一个存储过程,我正在尝试优化。为了知道我在脚本开头添加了执行的时间:
use MyDatabase
go
CHECKPOINT;
GO
DBCC DROPCLEANBUFFERS;
GO
两次执行之间的我可以看到运行查询的时间减少了。我以为只有缓存才能强制执行我的脚本,SQL Server中是否还有其他机制可以解决这个问题?
感谢,
答案 0 :(得分:2)
首次运行存储过程时,将计算并编译查询计划。这通常需要20ms,对于长时间的过程可能会多一点。
如果您在checkpoint; dbcc dropcleanbuffers;
之前运行一次查询,则应缓存该计划。