Ich habe diese Frage von einem Blog-Post bekommen :
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'
Der Beitrag sagte, dass es mir einen Prozentsatz der Treffer im Cache geben würde. Es schien anzuzeigen, dass es ein Wert von 0-100 sein würde (es zeigte ein Ergebnis von 87).
Aber wenn ich es laufen lasse, bekomme ich sehr hohe Zahlen. Hier ist ein Beispiel:
object_name counter_name cntr_value
SQLServer:Buffer Manager Buffer cache hit ratio 9990
Bedeutet das 99,90%?
Wenn nicht, was bedeutet das? Und wie kann ich den wahren Wert bekommen?
HINWEIS: Ich habe Werte von 257 bis 352363 erhalten
Für den Fall, dass es relevant ist, sind hier ein paar andere Serverstatistiken:
- Lebenserwartung der Seite: 145
- Seite liest / sec: 1,380,009,009
sql-server
performance
sql-server-2012
Vaccano
quelle
quelle
Antworten:
Verwirrend, richtig?
Nun, um das Verhältnis tatsächlich zu erhalten, müssen Sie es selbst tun, indem Sie das Ergebnis
Buffer cache hit ratio base
zusätzlich zu demBuffer cache hit ratio
von verwendenBuffer cache hit ratio / Buffer cache hit ratio base
.Versuchen Sie die folgende Abfrage (von Less Than Dot ), die Ihnen den gewünschten Prozentsatz geben sollte:
quelle
Wenn Sie keine Standardinstanz von SQL Server, sondern eine benannte Instanz haben, müssen Sie die Abfrage folgendermaßen ändern:
quelle