J'ai reçu cette requête d'un article de 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'
Le message a déclaré que cela me donnerait un pourcentage de visites dans le cache. Il semblait indiquer que ce serait une valeur de 0 à 100 (il a donné un résultat de 87).
Mais quand je le lance, j'obtiens des chiffres très élevés. Voici un exemple:
object_name counter_name cntr_value
SQLServer:Buffer Manager Buffer cache hit ratio 9990
Est-ce à dire 99,90%?
Sinon, qu'est-ce que cela signifie? Et comment puis-je obtenir la valeur réelle?
REMARQUE: j'ai obtenu des valeurs aussi basses que 257 et aussi élevées que 352363
Dans le cas où cela est pertinent, voici quelques autres statistiques de serveur:
- Espérance de vie de la page: 145
- Lectures de la page / sec: 1,380,009,009
Réponses:
Déroutant, non?
Eh bien, pour obtenir réellement le rapport, vous devrez le faire vous-même en utilisant le
Buffer cache hit ratio base
en plus duBuffer cache hit ratio
en prenant le résultat deBuffer cache hit ratio / Buffer cache hit ratio base
.Essayez la requête ci-dessous (de Less Than Dot ), qui devrait vous donner le% que vous recherchez:
la source
Si vous n'avez pas d'instance par défaut de SQL Server, mais une instance nommée, vous devez modifier la requête comme ceci:
la source