Nous avons surveillé certaines SQLServer: Memory Manager
mesures et avons remarqué qu’après le DBCC CheckDB
travail, les mesures
Database Cache Memory (KB)
baisse considérablement. Pour être exact, il est passé de 140 Go de mémoire DB mise en cache à 60 Go. Et après cela, remontez lentement au cours de la semaine. (La quantité de " Free Memory KB
" est passée de 20 à 100 Go juste après CheckDB
)
DBCC CheckDB
est exécuté tous les dimanches, donc la mémoire cache de base de données doit remonter chaque semaine
What is the behavior of this ? Why CheckDB pushes database pages out of memory ?
La deuxième question est pourquoi " buffer cache hit ratio
" n'a pas changé après la DBCC CheckDB
fin?
Il était de 99,99% en moyenne et après le DBCC CheckDB
travail, il tombe à ~ 98,00%, et revient à 99% assez rapidement alors que je m'attendais à ce que " buffer cache hit ratio
" baisse de manière significative car les données de la base de données doivent être lues de nouveau du stockage vers la RAM?
la source
Réponses:
C'est correct, vous pouvez clairement voir ce comportement lorsque cet exemple de
DBCC CHECKDB
commande se termine à21h45
Pourquoi
Ce comportement est dû au fait que
database snapshot
laDBCC
commande a été supprimée, supprimant tous ses objets en mémoire.Vous pouvez reproduire le comportement en créant un instantané d'une base de données, en chargeant certaines données en mémoire, puis en supprimant cet instantané
BufferSize avant de supprimer l'instantané
Suppression de l'instantané
BufferSize après la suppression de l'instantané
Cela dépend de la vitesse à laquelle les données sont chargées dans votre cache tampon.
Si votre pool de tampons se remplit sur une plus longue période, il devrait s'élever à ce ratio restant plus élevé en moyenne.
Cela correspond à cette partie de votre question:
la source