Welche Leistungsindikatoren können Sie in einer SQL Server-Instanz anzeigen, um die Leistung und den Gesamtzustand zu bestimmen?

10

Ich bin Student an der Fontys University in Eindhoven und führe derzeit eine Reihe von Interviews durch, um bei der Entwicklung eines SQL Server-Tools zu helfen. Ich möchte Feedback von Experten auf diesem Gebiet erhalten.

Eine meiner Fragen ist:

Welche Leistungsindikatoren können Sie in einer SQL Server-Instanz anzeigen, um die Leistung und den allgemeinen Zustand zu bestimmen?

Besonders interessieren mich die Schwellenwerte, wenn aus Gut schlecht wird.

Jamil Young Eindhoven Niederlande

Jamil
quelle

Antworten:

15

Hier ist mein Perfmon-Tutorial für SQL Server: http://www.brentozar.com/archive/2006/12/dba-101-using-perfmon-for-sql-performance-tuning/

Weitere Zähler und Schwellenwerte finden Sie in einem Poster, das wir bei Quest erstellt haben: http://www.quest.com/documents/landing.aspx?id=11635

Brent Ozar
quelle
Das ist ein wunderbares PDF von Quest. Auf jeden Fall ein Torhüter. Sie sollten auch eine für DMVs machen.
Stanley Johns
Eigentlich haben wir! Sie werden normalerweise bei Benutzergruppentreffen und Konferenzen ausgegeben.
Brent Ozar
6

Dies ist ein großes Thema mit viel Material und einem Hauch von Googeln. Als Ausgangspunkt sind dies die Zähler, die ich zuerst betrachte:

Prozessor -% Prozessorzeit

System - Prozessorwarteschlangenlänge

Sie erhalten wahrscheinlich von jedem DBA, den Sie fragen, einen anderen Zielwert für die CPU-Auslastung. SQL Server-Lizenzen sind teuer, sodass Sie einerseits die CPU-Auslastung maximieren und andererseits die Verfügbarkeit nicht beeinträchtigen möchten. In einer idealen Welt mit gut verstandenen Workloads können Sie eine Auslastung von 70% anstreben, bei 80-90% warnen und bei 90% + alarmieren. Zurück in der realen Welt mit einer Arbeitsbelastung, die Spitzen- und Tiefstwerte aufweist, ist es möglicherweise bequemer, einen Durchschnitt von 50-60% zu erreichen.

Speicher - Verfügbare MByte

Auslagerungsdatei -% Verwendung

Bei einem dedizierten SQL Server können je nach installiertem RAM weniger als 100 bis 200 MB verfügbarer Speicher auf einen Mangel und ein Risiko für das Paging des Betriebssystems hinweisen. Im Allgemeinen möchten wir nicht viel Aktivität von Auslagerungsdateien sehen, daher würde ich untersuchen, ob% Usage größer als 2% war, und besorgt sein, ob es 5% erreicht.

Buffer Manager - Trefferquote des Puffercaches

Buffer Manager - Lebenserwartung der Seite

Diese beiden Zähler werden besser gegen eine etablierte Basislinie für einen Server betrachtet. Idealerweise möchten wir, dass die Cache-Trefferquote so nahe wie möglich bei 100% liegt und ein PLE in Tausenden von Sekunden ausgeführt wird. Achten Sie darauf, wenn sie von historischen Durchschnittswerten abweichen.

SQL-Statistik - Stapelanforderungen / Sek

SQL-Statistik - Kompilierungen / Sek

SQL Statistics - Neukompilierungen / Sek

Anfragen / Sek. Ist ein gutes relatives Maß dafür, wie "beschäftigt" ein Server ist. Hohe Kompilierungs- / Neukompilierungswerte können darauf hinweisen, dass CPU-Zyklen bei der Abfragekompilierung verschwendet werden.

Physische Festplatte - Durchschn. Disk sec / Read

Physische Festplatte - Durchschn. Disk sec / Write

Physische Festplatte - Festplattenlesevorgänge / Sek

Physische Festplatte - Festplatte schreibt / Sek

Eine grobe Richtlinie für ein ordnungsgemäß konfiguriertes E / A-System lautet <5 ms (idealerweise 1 ms) für Protokolllaufwerke und <20 ms (idealerweise <10 ms) für Daten. Lese- / Schreibvorgänge pro Sekunde sollten gegen den bekannten Grenzwert für die Laufwerke abgewogen werden. Wenn Sie also eine Kapazität für 1000 IOPS haben, würde ich Upgrade-Optionen prüfen, wenn der durchschnittliche IOPS 750 erreicht.

Mark Storey-Smith
quelle
Gibt es auf dieser Ebene etwas, um Deadlocks und Wartezeiten zu überwachen?
Bernd_k
'Sperren - Anzahl Deadlocks / Sek.' Für Deadlocks. Für Wartezeiten gibt es verschiedene Zähler in der Kategorie "Wartestatistik".
Mark Storey-Smith