【问题标题】:Can someone explain DBCC DROPCLEANBUFFERS?有人可以解释 DBCC DROPCLEANBUFFERS 吗?
【发布时间】:2008-12-19 20:25:05
【问题描述】:
有人可以解释DBCC DROPCLEANBUFFERS 和CHECKPOINT 运算符的用法并提供示例吗?
我知道在您的查询之前测试运行的性能很有用,但我没有完全掌握它。我也不知道与 CHECKPOINT 运算符结合使用。
如果我在查询之前执行它,它们需要更长的时间才能运行,所以我猜比较性能是好的,但不能准确地评估它们。
任何帮助将不胜感激!
【问题讨论】:
标签:
sql-server
sql-server-2005
tsql
【解决方案1】:
CHECKPOINT 将修改后的数据页刷新到磁盘:
[CHECKPOINT] 将当前数据库的所有脏页写入磁盘。脏页是已进入缓冲区高速缓存并被修改但尚未写入磁盘的数据页。检查点通过创建一个确保所有脏页都已写入磁盘的点来节省以后恢复的时间。
DBCC DROPCLEANBUFFERS 然后删除所有非脏(iow,干净)页面:
使用 DBCC DROPCLEANBUFFERS 使用冷缓冲区缓存测试查询,而无需关闭并重新启动服务器。
要从缓冲池中删除干净的缓冲区,首先使用 CHECKPOINT 生成冷缓冲区高速缓存。这会强制将当前数据库的所有脏页写入磁盘并清理缓冲区。完成此操作后,您可以发出 DBCC DROPCLEANBUFFERS 命令从缓冲池中删除所有缓冲区。
最终结果是您一开始没有缓存任何东西。