有人可以解释DBCC DROPCLEANBUFFERS吗?

时间:2008-12-19 20:25:06

标签: sql-server sql-server-2005 tsql

有人可以解释DBCC DROPCLEANBUFFERSCHECKPOINT运算符一起使用并提供示例吗?

我知道在您的查询之前测试性能是有用的,但我并没有完全掌握它。另外,我不清楚与CHECKPOINT操作符结合使用。

如果我在查询之前执行它,它们需要花费更长的时间才能运行,因此我猜测比较性能是好的,但不能准确评估它们。

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:27)

CHECKPOINT将已修改的数据页刷新到磁盘:

  

[CHECKPOINT]将当前数据库的所有脏页写入磁盘。脏页是已输入缓冲区缓存并已修改但尚未写入磁盘的数据页。通过创建一个保证所有脏页都已写入磁盘的点,检查点可以在以后的恢复过程中节省时间。

DBCC DROPCLEANBUFFERS然后删除任何非脏(低,干净)的页面:

  

使用DBCC DROPCLEANBUFFERS使用冷缓冲区缓存测试查询,而无需关闭并重新启动服务器。

     

要从缓冲池中删除干净缓冲区,首先使用CHECKPOINT生成冷缓冲区缓存。这会强制将当前数据库的所有脏页写入磁盘并清除缓冲区。执行此操作后,您可以发出DBCC DROPCLEANBUFFERS命令以从缓冲池中删除所有缓冲区。

最终结果是你从没有缓存开始。