Saya mendapat pertanyaan ini dari posting blog :
SELECT object_name, counter_name, cntr_value
FROM sys.dm_os_performance_counters
WHERE [object_name] LIKE '%Buffer Manager%'
AND [counter_name] = 'Buffer cache hit ratio'
Posting mengatakan bahwa itu akan memberi saya persentase hit ke cache. Tampaknya menunjukkan bahwa itu akan menjadi nilai 0-100 (itu menunjukkan hasil 87).
Tetapi ketika saya menjalankannya saya mendapatkan angka yang sangat tinggi. Berikut ini sebuah contoh:
object_name counter_name cntr_value
SQLServer:Buffer Manager Buffer cache hit ratio 9990
Apakah ini berarti 99,90%?
Jika tidak, apa artinya? Dan bagaimana saya bisa mendapatkan nilai sebenarnya?
CATATAN: Saya mendapatkan nilai serendah 257 dan setinggi 352363
Jika relevan, berikut adalah beberapa statistik server lainnya:
- Harapan hidup halaman: 145
- Halaman terbaca / detik: 1,380,009,009
sql-server
performance
sql-server-2012
Gunung berapi
sumber
sumber
Jawaban:
Membingung kan?
Nah, untuk benar - benar mendapatkan rasio, Anda harus melakukannya sendiri menggunakan
Buffer cache hit ratio base
selainBuffer cache hit ratio
dengan mengambil hasil dariBuffer cache hit ratio / Buffer cache hit ratio base
.Coba kueri di bawah ini (dari Kurang Dari Dot ), yang akan memberi Anda% yang Anda cari:
sumber
Jika Anda tidak memiliki turunan standar dari SQL server, tetapi bernama turunan, Anda harus mengubah kueri seperti ini:
sumber