DBCC CheckDB之后,性能监视器中的数据库缓存内存显着下降


8

我们一直在监视一些SQLServer: Memory Manager指标,并注意到DBCC CheckDB工作后指标

Database Cache Memory (KB)

下降明显。确切地说,它从140 GB缓存的DB内存降至60 GB。之后,请在一周内慢慢增加速度。(“ Free Memory KB”的数量从之后的20 GB变为100 GB CheckDB

DBCC CheckDB 在每个星期日运行,因此数据库高速缓存内存必须每周再次增加

What is the behavior of this ? Why CheckDB pushes database pages out of memory ?

第二个问题是为什么“ buffer cache hit ratioDBCC CheckDB完成后没有变化?

它平均为99.99%,而在DBCC CheckDB工作后下降至〜98.00%,并很快恢复至99%,而我预计buffer cache hit ratio会大幅下降,因为数据库数据必须再次从存储读取到RAM?


关于BCHR,之所以没有进一步下降,可能是因为CHECKDB代码可以使用预读(RA)完成,并且在计算BCHR时不包括RA完成的I / O。反过来,这使BCHR成为无用的性能计数器。
Tibor Karaszi '19年

Answers:


9

我们一直在监视一些SQLServer:Memory Manager的指标,并注意到在DBCC CheckDB作业之后,指标

数据库缓存内存(KB)大大下降。确切地说,它已从140 GB缓存的DB内存降至60 GB

这是正确的,当此示例DBCC CHECKDB命令完成时,您可以清楚地看到此行为。21h45

在此处输入图片说明 在此处输入图片说明


为什么

此行为是由于删除database snapshot了该DBCC命令所创建的,从而删除了其在内存中的所有对象。

您可以通过创建数据库快照,在内存中加载一些数据然后删除该快照来复制行为。

  CREATE DATABASE MY_DATABASE
     GO
     USE MY_DATABASE 
     GO
     CREATE TABLE dbo.bla(id int identity(1,1) PRIMARY KEY NOT NULL,
                          val int,
                          val2 char(100));



    INSERT INTO dbo.bla(val,val2)
    SELECT ROW_NUMBER() OVER (ORDER BY (SELECT NULL)),'bla'
    FROM master..spt_values spt
    CROSS APPLY master..spt_values spt2;
    GO

    CREATE DATABASE MY_DATABASE_SNAPSHOT
     ON  
     (  
     NAME ='MY_DATABASE',  
     FILENAME ='D:\DATA\MY_DATABASE.ss'  
     ) 
     AS SNAPSHOT OF MY_DATABASE;

     GO


    USE MY_DATABASE_SNAPSHOT
    GO
    SELECT * FROM dbo.bla;

     SELECT
      COUNT(file_id) * 8/1024.0 AS BufferSizeInMB
    FROM sys.dm_os_buffer_descriptors;

删除快照前的BufferSize

BufferSizeInMB
1061.70312  --before

删除快照

USE master
GO
DROP DATABASE MY_DATABASE_SNAPSHOT ; 

删除快照后的BufferSize

BufferSizeInMB
824.179687 --after

第二个问题是,为什么DBCC CheckDB完成后“缓冲区高速缓存命中率”没有变化?

这取决于将数据加载回缓冲区高速缓存的速度。

如果您的缓冲池充满了更长的时间,则该比率应保持平均水平更高。

这与您问题的这一部分相对应:

...(缓冲池数据大小)从140 GB缓存的DB内存降至60 GB。之后,在一周中慢慢增加速度...


谢谢兰迪!当我们谈论由DBCC CheckDB创建的内部数据库快照时,它是在内存中创建的吗?还是在磁盘上?或两者兼而有
Aleksey Vitsko '19
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.