DROPCLEANBUFFERS在SQL Server中不起作用

时间:2012-06-27 06:51:37

标签: sql-server

我有一个存储过程,我正在尝试优化。为了知道我在脚本开头添加了执行的时间:

use MyDatabase
go
CHECKPOINT; 
GO 
DBCC DROPCLEANBUFFERS; 
GO
两次执行之间的

我可以看到运行查询的时间减少了。我以为只有缓存才能强制执行我的脚本,SQL Server中是否还有其他机制可以解决这个问题?

感谢,

1 个答案:

答案 0 :(得分:2)

首次运行存储过程时,将计算并编译查询计划。这通常需要20ms,对于长时间的过程可能会多一点。

如果您在checkpoint; dbcc dropcleanbuffers;之前运行一次查询,则应缓存该计划。