9990 “Arabellek önbellek isabet oranı” ne anlama geliyor?


12

Bu sorguyu bir blog gönderisinden aldım :

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'

Mesaj bana önbellek isabet yüzdesi verecek dedi. Görünüşe göre bu değer 0-100 (87 sonucunu gösterdi).

Ama koştuğumda çok yüksek rakamlar alıyorum. İşte bir örnek:

object_name               counter_name             cntr_value  
SQLServer:Buffer Manager  Buffer cache hit ratio   9990

Bu% 99.90 anlamına mı geliyor?

Değilse, bu ne anlama geliyor? Ve gerçek değeri nasıl alabilirim?

NOT: 257 kadar düşük ve 352363 kadar yüksek değerler aldım

Alakalı olduğu takdirde, diğer birkaç sunucu istatistikleri:

  • Sayfa ömrü: 145
  • Sayfa okuma / sn: 1,380,009,009

1
Maalesef blog yazısı yanlış. :-( Denis Gobo doğru anlıyor ...
Aaron Bertrand

Yanıtlar:


18

Kafa karıştırıcı, değil mi?

Eh, aslında oranını olsun, kullandığınız kendiniz yapmak gerekir Buffer cache hit ratio baseek olarak Buffer cache hit ratiosonucunu alarak Buffer cache hit ratio / Buffer cache hit ratio base.

Aradığınız sorguyu size vermesi gereken aşağıdaki sorguyu ( Noktadan Küçüktür ) deneyin :

SELECT (a.cntr_value * 1.0 / b.cntr_value) * 100.0 as BufferCacheHitRatio
FROM sys.dm_os_performance_counters  a
JOIN  (SELECT cntr_value, OBJECT_NAME 
    FROM sys.dm_os_performance_counters  
    WHERE counter_name = 'Buffer cache hit ratio base'
        AND OBJECT_NAME = 'SQLServer:Buffer Manager') b ON  a.OBJECT_NAME = b.OBJECT_NAME
WHERE a.counter_name = 'Buffer cache hit ratio'
AND a.OBJECT_NAME = 'SQLServer:Buffer Manager'

5
Denis Gobo'ya kredi vermelisin ...
Aaron Bertrand

@Aaron O günlerden biri - ilişkilendirme eklendi
LowlyDBA

Aldığım sonuçlardan kafam karıştı, bkz. İlgili PLE 103 ile% 100 Arabellek önbellek isabet oranı nasıl olabilir?
James Jenkins

0

SQL sunucusunun varsayılan bir örneğiniz değil, ancak adlandırılmış örneğiniz varsa, sorguyu şu şekilde değiştirmeniz gerekir:

  SELECT (a.cntr_value * 1.0 / b.cntr_value) * 100.0 as BufferCacheHitRatio
FROM sys.dm_os_performance_counters  a
JOIN  (SELECT cntr_value, OBJECT_NAME 
    FROM sys.dm_os_performance_counters  
    WHERE counter_name = 'Buffer cache hit ratio base'
        AND OBJECT_NAME LIKE '%:Buffer Manager%') b ON  a.OBJECT_NAME = b.OBJECT_NAME
WHERE a.counter_name = 'Buffer cache hit ratio'
AND a.OBJECT_NAME LIKE '%:Buffer Manager%'
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.