Kami telah memantau beberapa SQLServer: Memory Manager
metrik, dan memperhatikan bahwa setelah DBCC CheckDB
bekerja, metrik
Database Cache Memory (KB)
turun secara signifikan. Jika lebih tepatnya, itu turun dari 140 GB memori DB cache ke 60 GB. Dan setelah itu, perlahan-lahan naik lagi selama seminggu. (Jumlah " Free Memory KB
", mulai dari 20 hingga 100 GB tepat setelah CheckDB
)
DBCC CheckDB
dijalankan setiap hari Minggu, jadi Memori Cache Database harus ditingkatkan lagi setiap minggu
What is the behavior of this ? Why CheckDB pushes database pages out of memory ?
Pertanyaan kedua adalah mengapa " buffer cache hit ratio
" tidak berubah setelah DBCC CheckDB
selesai?
Rata-rata 99,99% dan setelah DBCC CheckDB
pekerjaan turun menjadi ~ 98,00%, dan kembali ke 99% cukup cepat sementara saya berharap " buffer cache hit ratio
" turun secara signifikan karena data basis data harus dibaca dari penyimpanan ke RAM lagi?
sumber
Jawaban:
Ini benar, Anda dapat dengan jelas melihat perilaku ini ketika
DBCC CHECKDB
perintah contoh ini selesai di21h45
Mengapa
Perilaku ini disebabkan
database snapshot
olehDBCC
perintah yang dibuat, yang menghapus semua objek di memori.Anda dapat mereplikasi perilaku dengan membuat snapshot dari database, memuat beberapa data dalam memori, dan kemudian menjatuhkan snapshot itu
BufferSize sebelum menjatuhkan snapshot
Menjatuhkan foto itu
BufferSize setelah menjatuhkan snapshot
Ini tergantung pada seberapa cepat data dimuat kembali dalam cache buffer Anda.
Jika kolam penyangga Anda terisi lebih lama, rasio ini seharusnya setara dengan rata-rata yang lebih tinggi.
Ini sesuai dengan bagian dari pertanyaan Anda:
sumber