Abbiamo monitorato alcuni SQL Server: le metriche di Memory Manager e abbiamo notato che dopo il processo DBCC CheckDB, la metrica
La memoria cache del database (KB) si riduce in modo significativo. Per l'esattezza, è passato da 140 GB di memoria cache cache a 60 GB
Questo è corretto, puoi vedere chiaramente questo comportamento quando questo DBCC CHECKDB
comando di esempio viene completato in21h45
Perché
Questo comportamento è dovuto al fatto che il comando database snapshot
creato è DBCC
stato eliminato, rimuovendo tutti i suoi oggetti in memoria.
È possibile replicare il comportamento creando un'istantanea di un database, caricando alcuni dati in memoria e quindi rilasciando tale istantanea
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 prima di eliminare l'istantanea
BufferSizeInMB
1061.70312 --before
Eliminazione dell'istantanea
USE master
GO
DROP DATABASE MY_DATABASE_SNAPSHOT ;
BufferDimensione dopo aver rilasciato l'istantanea
BufferSizeInMB
824.179687 --after
La seconda domanda è perché "hit rate cache buffer" non è cambiato dopo il completamento di DBCC CheckDB?
Ciò dipende dalla velocità con cui i dati vengono caricati nuovamente nella cache del buffer.
Se il pool di buffer si riempie per un periodo di tempo più lungo, dovrebbe corrispondere a questo rapporto rimanendo in media più elevato.
Ciò corrisponde a questa parte della tua domanda:
... ( dimensione dei dati del pool di buffer ) è passato da 140 GB di memoria cache cache a 60 GB. e dopo, lentamente ritorna di nuovo durante la settimana ...