架构师_程序员_码农网

查看: 90|回复: 1

[技巧] 【转】SQL Server DBCC DROPCLEANBUFFERS 失效了?

[复制链接]
发表于 2021-7-13 15:45:20 | 显示全部楼层
BCC DROPCLEANBUFFERS是用来清除内存中的数据缓存,一般我们在做性能调优时为了方便看到一条语句的执行时间和物理IO消耗,都会在语句执行前执行一遍DBCC DROP CLEANBUFFERS。

但,这招并不是时时很灵。

有人或许就碰到这种现象,即使执行了DBCC DROPCLEANBUFFERS,但在SSMS的输出信息里面还是看不到物理读,这条语句还是从内存中读取的数据(逻辑读)

你会很诧异,“不是已经将内存中的缓冲清空了吗,怎么没有物理读呢?出现这种现象是不是DBCC DROPCLEANBUFFERS失效了呢?”

不是。DROP CLEANBUFFERS确实是可以用来清除内存中的数据缓存,但只能清除掉clean状态的缓存页面,相对的,如果这些页面是脏页,也就是内存中已被修改且还未同步到磁盘的数据页面,那么它是无法从缓存中清除的,这是为了性能的考虑。

所以当你遇到DROP CLEANBUFFERS“失效”时,尝试手动同步下内存和磁盘中的数据页面,执行:



你也可以通过如下语句查看当前内存中clean页面和脏页的数量和大小:


清理缓存区命令:




原文:https://www.cnblogs.com/i6first/p/4503746.html




上一篇:【转】Sql Server 关于分区表的总结
下一篇:SQL SERVER 移除删除分区函数和分区方案
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
 楼主| 发表于 2021-7-13 15:46:02 | 显示全部楼层
SQL Server中关于的checkpoint使用说明

https://blog.csdn.net/tjvictor/article/details/5209604
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2021-7-24 22:10

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表