Das SQL Server Management Studio ist neben dem Profiler ein weiteres Windows Programm und wird zur Verwaltung von MS SQL Servern verwendet. Auch eine genauere Analyse ist hier möglich. An dieser Stelle wird ein kurzer Einblick geboten, wie man Abfragen genauer untersuchen kann.

Abfragen prüfen

Mit einem Abfragefenster für die eigene Datenbank, können Abfragen beispielsweise aus dem Profiler nochmals ausgeführt, modifiziert und geprüft werden. Um ein neues Abfragefenster zu öffnen, markiert man seine Datenbank und mit rechtem Mausklick + „Neue Abfrage” erhält man ein solches Fenster. In einem neuen Fenster sollte man zuerst

SET DATEFORMAT ymd
SET STATISTICS time on

ausführen. Zeile 1 stellt sicher das Abfragen mit Zeitangaben korrekt ausgeführt werden. Zeile 2 schaltet die Laufzeitüberwachung der Abfrage an.

Unterhalb der Abfrage befindet sich nach Ausführung ein Tab mit den „Ergebnissen” und ein Tab mit „Meldungen”. Im Tab „Meldungen” findet man dann die Laufzeit der Abfrage.

An dieser Stelle ist es nun möglich, bei genauerer Kenntnis der SQL Syntax und der internen Business App Strukturen den problematischen Teil einer Abfrage zu erkennen. Dies ist insbesondere bei der Analyse von Problemen in Ansichten sinnvoll. Sehen Sie dazu nähere Informationen im Kapitel Anwendung / Ansichten.

Mit „Tatsächlichen Ausführungsplan einschließen (Strg + M)” wird nach Ausführung einer Abfrage der „Ausführungsplan” als weiterer Tab angezeigt. Dieser enthält eine grafische Darstellung des Ausführungsplan. Eine Interpretation dieses Plans ist nur Experten möglich aber es wird zusätzlich noch auf möglicherweise fehlende Indexe hingewiesen.

Mit rechtem Mausklick und „Fehlende Indexdetail” auf diesem Hinweis, erhält man eine Schablone zur Erzeugung dieses Indexes.

CREATE NONCLUSTERED INDEX [<Name of Missing Index, sysname,>]
	ON [dbo].[OrmSubRecurrenceDatesAppointmentBaseStart] ([Flags])
	INCLUDE ([Oid])

Eine Verbesserung des Zeitverhaltens der Abfrage ist aber damit nicht sichergestellt. Wenn nach Erzeugung des Indexes keine signifikante Verbesserung eintritt, sollte man den Index umgehend löschen. Jeder zusätzliche Index, muss vom SQL Server gepflegt werden und hat daher Einfluss auf die Anwendung selbst.

Überwachen der Leistung mithilfe des Abfragespeichers

Neben der Überwachung mit Hilfe des Profilers zu einem bestimmten Zeitpunkt, kann auch eine längere Überwachung aktiviert werden. Diese vom SQL Server dann ermittelten Daten werden in dem Abfragespeicher abgelegt. Der Befehl zur Aktivierung dieser Überwachung lautet:

ALTER DATABASE [Name der Datenbank] SET QUERY_STORE = ON;

Nun sammelt der SQL Server Informationen zu allen Abfragen dieser Datenbank. Unterhalb der Datenbank erscheint ein weiterer Ordner mit dem Namen „Abfragespeicher” (Evtl. rechter Mausklick + „Aktualisieren”). Dort können nun problematische Abfragen identifiziert werden.

Insbesondere durch die hohe Flexibilität der Ansichten (Siehe Kapitel Anwendung / Ansichten) ist es möglich das Anwender durch bestimmte Sortierungen, Gruppierungen oder Summierungen extrem langsame Abfragen für Ansichten erzeugen. Ist dies der Fall, kann man entweder einen anderen Ausführungsplan bestimmen, einen neuen Index erstellen oder in der Anwendung selbst konfigurative Änderungen vornehmen.

Einrichtung Überwachung