有人可以解释DBCC DROPCLEANBUFFERS
与CHECKPOINT
运算符一起使用并提供示例吗?
我知道在您的查询之前测试性能是有用的,但我并没有完全掌握它。另外,我不清楚与CHECKPOINT操作符结合使用。
如果我在查询之前执行它,它们需要花费更长的时间才能运行,因此我猜测比较性能是好的,但不能准确评估它们。
任何帮助将不胜感激!
答案 0 :(得分:27)
CHECKPOINT将已修改的数据页刷新到磁盘:
[CHECKPOINT]将当前数据库的所有脏页写入磁盘。脏页是已输入缓冲区缓存并已修改但尚未写入磁盘的数据页。通过创建一个保证所有脏页都已写入磁盘的点,检查点可以在以后的恢复过程中节省时间。
DBCC DROPCLEANBUFFERS然后删除任何非脏(低,干净)的页面:
使用DBCC DROPCLEANBUFFERS使用冷缓冲区缓存测试查询,而无需关闭并重新启动服务器。
要从缓冲池中删除干净缓冲区,首先使用CHECKPOINT生成冷缓冲区缓存。这会强制将当前数据库的所有脏页写入磁盘并清除缓冲区。执行此操作后,您可以发出DBCC DROPCLEANBUFFERS命令以从缓冲池中删除所有缓冲区。
最终结果是你从没有缓存开始。