BCC DROPCLEANBUFFERS digunakan untuk menghapus cache data dalam memori, dan umumnya ketika kami melakukan penyetelan kinerja, kami akan mengeksekusi DBCC DROP CLEANBUFFERS sebelum pernyataan dieksekusi untuk memfasilitasi waktu eksekusi dan konsumsi IO fisik suatu pernyataan.
Namun, trik ini tidak selalu sangat efektif.
Beberapa orang mungkin pernah mengalami fenomena ini,Bahkan jika DBCC DROPCLEANBUFFERS dieksekusi, masih belum ada pembacaan fisik dalam informasi keluaran SSMS, dan pernyataan ini masih merupakan data yang dibaca dari memori (pembacaan logis)。
Anda akan terkejut, "Bukankah penyangga dalam memori dikosongkan, mengapa tidak ada pembacaan fisik?" Apakah fenomena ini tidak valid DBCC DROPCLEANBUFFERS? ”
Tidak. DROP CLEANBUFFERS memang dapat digunakan untuk menghapus cache data di memori, tetapi hanya halaman cache dalam keadaan bersih, di sisi lain, jika halaman tersebut adalah halaman kotor, yaitu halaman data dalam memori yang telah dimodifikasi dan belum disinkronkan ke disk, maka tidak dapat dihapus dari cache, ini karena alasan kinerja.
Jadi ketika Anda menemukan DROP CLEANBUFFERS "tidak valid", coba sinkronkan halaman data secara manual di memori dan disk, lakukan:
Anda juga dapat memeriksa jumlah dan ukuran halaman bersih dan halaman kotor di memori saat ini dengan mengatakan hal berikut:
Bersihkan perintah cache:
Asli:Login hyperlink terlihat. |