DBCC DROPCLEANBUFFERS失效了?

简介: DBCC DROPCLEANBUFFERS是用来清除内存中的数据缓存,一般我们在做性能调优时为了方便看到一条语句的执行时间和物理IO消耗,都会在语句执行前执行一遍DBCC DROP CLEANBUFFERS。

原文出处:http://www.sqlskills.com/blogs/paul/when-dbcc-dropcleanbuffers-doesnt-work/

DBCC DROPCLEANBUFFERS是用来清除内存中的数据缓存,一般我们在做性能调优时为了方便看到一条语句的执行时间和物理IO消耗,都会在语句执行前执行一遍DBCC DROP CLEANBUFFERS。

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

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

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

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

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

checkpoint

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

复制代码
SELECT *,

[DirtyPageCount] * 8 / 1024 AS [DirtyPageMB],

[CleanPageCount] * 8 / 1024 AS [CleanPageMB]

FROM

(SELECT

(CASE WHEN ([database_id] = 32767)

THEN N'Resource Database'

ELSE DB_NAME ([database_id]) END) AS [DatabaseName],

SUM (CASE WHEN ([is_modified] = 1)

THEN 1 ELSE 0 END) AS [DirtyPageCount],

SUM (CASE WHEN ([is_modified] = 1)

THEN 0 ELSE 1 END) AS [CleanPageCount]

FROM sys.dm_os_buffer_descriptors

GROUP BY [database_id]) AS [buffers]

ORDER BY [DatabaseName]

GO
复制代码
目录
相关文章
|
9月前
|
SQL 关系型数据库 MySQL
14. 什么情况下索引会失效 ?
了解 MySQL 索引失效的情况对优化 SQL 查询至关重要。避免在列上使用函数、运算、!=、not in、OR 和 %value% LIKE 操作,以保持索引有效性。使用组合索引代替多个单列索引,防止范围查询后的列无法使用索引。注意,NULL 值、列类型不匹配和隐式转换也可能导致索引失效。
121 0
|
9月前
|
SQL 关系型数据库 MySQL
索引失效的10中场景
索引失效的10中场景
|
关系型数据库 MySQL 索引
索引失效的情况
索引失效的情况
91 0
|
SQL 存储 关系型数据库
【已解决】MySQL 事务回滚机制失效之误用 truncate 删除表数据
【已解决】MySQL 事务回滚机制失效之误用 truncate 删除表数据
498 0
|
存储 关系型数据库 MySQL
谁还没碰过索引失效呢
今天就来跟大家盘一盘,常见的 6 种会发生索引失效的场景。 不仅会用实验案例给大家说明,也会清楚每个索引失效的原因。
谁还没碰过索引失效呢
|
SQL 缓存 Oracle
索引失效的场景有哪些?索引何时会失效?
列与列对比 某个表中,有两列(id和c_id)都建了单独索引,下面这种查询条件不会走索引
|
SQL 缓存 Oracle
索引失效的情况有哪些?索引何时会失效?(全面总结)
虽然你这列上建了索引,查询条件也是索引列,但最终执行计划没有走它的索引。下面是引起这种问题的几个关键点。
|
SQL 关系型数据库 MySQL
索引失效的几种场景
在数据库SQL优化中,百分之80%的问题SQL都可以通过索引来解决,但是有时候我们也会碰到一种情况,明明索引都有,为什么MySQL没有选择走索引而是走了全表扫描呢?近期就碰到一个案例,同大家分析一个当时的解决思路以及对索引失效的几种情况总结一下~
3636 0
|
Oracle 关系型数据库 索引