Мы отслеживали некоторые SQLServer: Memory Manager
показатели и заметили, что после DBCC CheckDB
работы показатель
Database Cache Memory (KB)
падает значительно. Если быть точным, то он упал с 140 ГБ кеш-памяти до 60 ГБ. И после этого медленно наращивать снова в течение недели. (Объем " Free Memory KB
", сразу после 20 - 100 ГБ CheckDB
)
DBCC CheckDB
запускается каждое воскресенье, поэтому кэш-память базы данных должна возвращаться обратно каждую неделю
What is the behavior of this ? Why CheckDB pushes database pages out of memory ?
Второй вопрос: почему " buffer cache hit ratio
" не изменилось после DBCC CheckDB
завершения?
В среднем оно составило 99,99%, а после DBCC CheckDB
работы оно упало до ~ 98,00% и вернулось к 99% довольно быстро, хотя я ожидал, что " buffer cache hit ratio
" значительно упадет, потому что данные базы данных должны снова считываться из хранилища в ОЗУ?
источник
Ответы:
Это правильно, вы можете ясно увидеть это поведение, когда эта
DBCC CHECKDB
команда примера завершается в21h45
Почему
Это происходит из-за того, что
database snapshot
созданнаяDBCC
команда удаляется, удаляя все ее объекты в памяти.Вы можете повторить поведение, создав снимок базы данных, загрузив некоторые данные в память, а затем отбросив этот снимок
BufferSize перед сбросом снимка
Отбрасывание снимка
BufferSize после удаления снимка
Это зависит от того, как быстро данные загружаются обратно в ваш буферный кеш.
Если ваш буферный пул заполняется в течение более длительного времени, он должен соответствовать этому соотношению, оставаясь в среднем выше.
Это соответствует этой части вашего вопроса:
источник