Es macht oft Sinn bereits bei der Entwicklung von SQL-Statements den Auslastungsgrad und die Laufzeit von Abfragen bestimmen zu können. Bereits in der Entwicklungsphase kann man so die SQL-Statements bezüglich Auslastungsgrad, Laufzeit, I/O und reads optimieren. Je früher man in der Entwicklung auf Performance achtet umso besser kann auf mögliche Flaschenhälse reagiert werden.

Hierfür hat Microsoft etwas vorbereitet.

EXEC sp_monitor
GO

<<SQL-Statement>>

EXEC sp_monitor
GO

Neben dem Ergebnis des SQL-Statements bekommt man viele Informationen geliefert, die Rückschlüsse auf den Auslastungsgrad erlauben.

last_runcurrent_runseconds

Hier bekommt man den Zeitpunkt des letzten Laufes, des aktuellen Laufes und die Zeitdifferenz in Sekunden ausgegeben.

cpu_busyio_busyidle

Hier die CPU-Auslastung, die I/o-Auslastung und den IDLE-Wert.

packets_recivedpackets_sentpacket_errors

Hier wie viele Pakete empfangen, wie viele gesendet und wieviele Paket Fehler erfolgten ausgegeben.

total_readtotal_writetotal_errorsconnections

Im letzten Result wird angegeben wie viel gelesen, geschrieben wurde, wie viele Fehler erfolgt sind und wie viele Verbindungen benötigt wurden.

Wenn man wie hier im Beispiel vor und nach dem SQL-Statement sp_monitor ausführt bekommt man einen Vergleich zum vorherigen ausführen und dem aktuellen ausführen der SQL-Statement. Dies ermöglicht die genauere analyse des SQL-Statements bezüglich der Veränderung vom Auslastungsgrad.

Ausführungsrecht:

Für die Ausführung der Prozedur sp_monitor benötigt man die Mitgliedschaft der Serverrolle sysadmin.

Von Michael