Perilaku Cache Paket Lengkap


8

Dalam SQL Server 2005, apa yang terjadi ketika cache rencana terisi? Saya telah melakukan beberapa penelitian, dan dari potongan-potongan yang dikumpulkan tampaknya bahwa rencana cache diberikan "usia" yang terdiri dari berat itu, atau biaya untuk mengkompilasi, dikalikan dengan berapa kali telah dijalankan sejak di-cache. Seiring waktu usia ini dikurangi, hingga mencapai 0, ketika dianggap "usang" dan merupakan kandidat untuk pembilasan saat dibutuhkan. Saat cache paket terisi, paket yang usang dihapus dari cache.

Adakah hal lain yang terjadi di balik layar untuk memperumit skenario ini?

Terima kasih,

Mat

Jawaban:


9

Info terbaik untuk subjek yang ditemukan di MSDN ada di sini: Rencana Eksekusi Caching dan Penggunaan Kembali . Kutipan dari artikel MSDN:

"Menghapus Rencana Eksekusi dari Cache Prosedur

Rencana eksekusi tetap ada dalam cache prosedur selama ada cukup memori untuk menyimpannya. Ketika tekanan memori ada, Mesin Database menggunakan pendekatan berbasis biaya untuk menentukan rencana eksekusi yang akan dihapus dari cache prosedur. Untuk membuat keputusan berbasis biaya, Mesin Database meningkatkan dan mengurangi variabel biaya saat ini untuk setiap rencana pelaksanaan sesuai dengan faktor-faktor berikut.

Ketika tekanan memori ada, Mesin Database merespons dengan menghapus rencana eksekusi dari cache prosedur. Untuk menentukan rencana mana yang harus dihapus, Mesin Basis Data berulang kali memeriksa keadaan setiap rencana eksekusi dan menghapus rencana ketika biaya saat ini adalah nol. Paket eksekusi dengan nol biaya saat ini tidak dihapus secara otomatis ketika tekanan memori ada; itu dihapus hanya ketika Mesin Database memeriksa rencana dan biaya saat ini adalah nol. Saat memeriksa rencana eksekusi, Mesin Database mendorong biaya saat ini ke nol dengan mengurangi biaya saat ini jika permintaan saat ini tidak menggunakan rencana. "

Lebih baik membaca artikel lengkap, ini didokumentasikan dengan sangat baik. Lihat juga ada beberapa tautan.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.