Übersicht über die Leistungsüberwachung und -optimierung

Ziel der Überwachung von Datenbanken ist es, die Leistung eines Servers zu bewerten. Eine effektive Überwachung umfasst die regelmäßige Erstellung von Snapshots der aktuellen Leistung, um problematische Prozesse zu isolieren, und die kontinuierliche Sammlung von Daten, um Leistungstrends über längere Zeit zu verfolgen. Microsoft SQL Server und das Microsoft Windows-Betriebssystem stellen Dienstprogramme bereit, mit denen Sie den aktuellen Zustand der Datenbank anzeigen und die Leistung unter veränderten Bedingungen nachverfolgen können.

Durch Überwachen von SQL Server können Sie die folgenden Aufgaben ausführen:

  • Ermitteln, ob die Leistung verbessert werden kann. Indem Sie beispielsweise die Antwortzeiten für häufig verwendete Abfragen überwachen, können Sie ermitteln, ob Änderungen an der Abfrage oder den Indizes in den Tabellen erforderlich sind.

  • Analysieren der Benutzeraktivität. Wenn Sie beispielsweise überwachen, wie Benutzer versuchen, eine Verbindung zu einer Instanz von SQL Server herzustellen, können Sie ermitteln, ob die Sicherheit adäquat eingerichtet ist, und Anwendungen oder Entwicklungssysteme testen. Sie können beispielsweise durch Überwachen von SQL-Abfragen während der Ausführung ermitteln, ob sie richtig geschrieben sind und zu den erwarteten Ergebnissen führen.

  • Beheben möglicher Probleme oder Debuggen von Anwendungskomponenten, wie z. B. den gespeicherten Prozeduren.

Die Überwachung ist wichtig, da SQL Server einen Dienst in einer dynamischen Umgebung bereitstellt. Die Daten in der Anwendung ändern sich. Die Art des Zugriffs, den Benutzer benötigen, ändert sich. Die Art der Verbindungsherstellung ändert sich. Möglicherweise ändern sich sogar die Typen der Anwendungen, die auf SQL Server zugreifen, aber SQL Server verwaltet automatisch Ressourcen auf Systemebene, z. B. Arbeits- oder Datenträgerspeicher, sodass der Bedarf an manueller Optimierung auf Systemebene minimal ist. Mithilfe der Überwachung können Administratoren jedoch Leistungstrends identifizieren, um festzustellen, ob Änderungen erforderlich sind.

Um eine Komponente von SQL Server effektiv zu überwachen, führen Sie die folgenden Schritte aus:

  1. Bestimmen Sie, welche Ziele durch das Überwachen erreicht werden sollen.

  2. Wählen Sie das geeignete Tool aus.

  3. Identifizieren Sie die zu überwachenden Komponenten.

  4. Wählen Sie Eigenschaften für diese Komponenten aus.

  5. Überwachen Sie den Server.

  6. Analysieren Sie die Daten.

Diese Schritte werden unten der Reihe nach erläutert.

Bestimmen der Überwachungsziele

Um SQL Server effektiv überwachen zu können, sollten Sie die Gründe für die Überwachung eindeutig identifizieren. Möglich sind z. B. folgende Gründe:

  • Festlegen einer Basislinie für die Leistung.

  • Identifzieren von Leistungsänderungen über einen bestimmten Zeitraum hinweg.

  • Diagnostizieren bestimmter Leistungsprobleme.

  • Identifizieren der zu optimierenden Komponenten oder Prozesse.

  • Vergleichen der Auswirkungen unterschiedlicher Clientanwendungen auf die Leistung.

  • Überwachen der Benutzeraktivität.

  • Testen eines Servers unter verschiedenen Belastungen.

  • Testen der Datenbankarchitektur.

  • Testen der Wartungspläne.

  • Testen der Sicherungs- und Wiederherstellungspläne.

  • Bestimmen des Zeitpunkts für die Änderung der Hardwarekonfiguration.

Auswählen des geeigneten Tools

Nachdem Sie die Gründe für die Überwachung ermittelt habe, müssen Sie die geeigneten Tools auswählen. Das Windows-Betriebssystem und SQL Server stellen einen vollständigen Satz von Tools bereit, um Server in transaktionsintensiven Umgebungen zu überwachen. Diese Tools zeigen den Zustand einer Instanz des SQL Server-Datenbankmoduls oder einer Instanz von SQL Server Analysis Services an.

Windows stellt die folgenden Tools bereit, um die auf einem Server ausgeführten Anwendungen zu überwachen:

  • Den Systemmonitor, mit dem Sie Echtzeitdaten zu Aktivitäten, z. B. die Arbeitsspeicher-, Datenträger- und Prozessorverwendung, sammeln und anzeigen können.

  • Leistungsprotokolle und Warnungen.

  • Task-Manager.

Weitere Informationen zu den Windows Server- oder Windows-Tools finden Sie in der Windows-Dokumentation.

SQL Server stellt die folgenden Tools zum Überwachen der Komponenten von SQL Server zur Verfügung:

  • Die SQL-Ablaufverfolgung

  • SQL Server Profiler

  • SQL Server Management Studio-Aktivitätsmonitor

  • Grafischer Showplan von SQL Server Management Studio

  • Gespeicherte Prozeduren

  • DBCC (Database Console Commands)

  • Integrierte Funktionen

  • Ablaufverfolgungsflags

Weitere Informationen zu SQL Server-Überwachungstools finden Sie unter Tools für die Leistungsüberwachung und -optimierung.

Identifizieren der zu überwachenden Komponenten

Der dritte Schritt bei der Überwachung einer Instanz von SQL Server besteht im Identifizieren der zu überwachenden Komponenten. Wenn Sie z. B. SQL Server Profiler verwenden, um eine Ablaufverfolgung für einen Server auszuführen, können Sie die Ablaufverfolgung so definieren, dass Daten zu bestimmten Ereignissen gesammelt werden. Darüber hinaus können Sie Ereignisse ausschließen, die für Ihre Situation nicht relevant sind.

Auswählen der Eigenschaften für die überwachten Komponenten

Nachdem Sie die zu überwachenden Komponenten identifiziert haben, bestimmen Sie die Eigenschaften für diese Komponenten. Nachdem Sie die Ereignisse ausgewählt haben, die bei der Ablaufverfolgung berücksichtigt werden sollen, können Sie beispielsweise festlegen, dass nur bestimmte Daten zu diesen Ereignissen berücksichtigt werden. Indem Sie die Ablaufverfolgung auf Daten beschränken, die für die Ablaufverfolgung relevant sind, werden die für die Ausführung der Ablaufverfolgung erforderlichen Systemressourcen minimiert.

Überwachen des Servers

Um den Server zu überwachen, führen Sie das Überwachungstool aus, das Sie zum Sammeln der Daten konfiguriert haben. Nachdem z. B. eine Ablaufverfolgung definiert wurde, können Sie die Ablaufverfolgung ausführen, um Daten zu Ereignissen zu sammeln, die auf dem Server ausgelöst wurden.

Analysieren der Daten

Nachdem die Ablaufverfolgung beendet wurde, können Sie die Daten analysieren, um zu überprüfen, ob Sie das Überwachungsziel erreicht haben. Falls Sie es nicht erreicht haben, ändern Sie die Komponenten oder Eigenschaften, die Sie beim Überwachen des Servers verwendet haben.

Die folgenden Schritte sind zur Aufzeichnung von Ereignisdaten und zu deren Verwendung erforderlich.

  1. Anwenden von Filtern, um die gesammelten Ereignisdaten einzuschränken.

    Durch Einschränken der Ereignisdaten kann sich das System auf bestimmte Ereignisse konzentrieren, die wesentlich für das Überwachungsszenario sind. Wenn z. B. langsame Abfragen überwacht werden, kann ein Filter verwendet werden, um nur die Abfragen zu überwachen, die von der Anwendung für eine bestimmte Datenbank ausgegeben wurden und deren Ausführung mindestens 30 Sekunden dauert. Weitere Informationen finden Sie unter Vorgehensweise: Erstellen eines Ablaufverfolgungsfilters (Transact-SQL) und Vorgehensweise: Filtern von Ereignissen in einer Ablaufverfolgung (SQL Server Profiler).

  2. Überwachen (Aufzeichnen) der Ereignisse.

    Sobald die Überwachung aktiviert wurde, zeichnet sie Daten der angegebenen Anwendung, der Instanz von SQL Server oder des Betriebssystems auf. Wenn beispielsweise die Datenträgeraktivität mithilfe des Systemmonitors überwacht wird, werden bei der Überwachung Ereignisdaten, z. B. Lese- und Schreibvorgänge auf dem Datenträger, aufgezeichnet und auf dem Bildschirm angezeigt. Weitere Informationen finden Sie unter Überwachen der Ressourcenverwendung (Systemmonitor).

  3. Speichern aufgezeichneter Ereignisdaten.

    Durch das Speichern aufgezeichneter Daten können diese später analysiert oder sogar mit SQL Server Profiler wiedergegeben werden. Aufgezeichnete Ereignisdaten werden in einer Datei gespeichert, die von dem Tool, das die Datei ursprünglich erstellt hat, zur späteren Analyse erneut geladen werden kann. SQL Server Profiler ermöglicht das Speichern von Ereignisdaten in einer SQL Server-Tabelle. Das Speichern aufgezeichneter Ereignisdaten ist wichtig, wenn Sie eine Leistungsbasislinie erstellen. Die Daten der Leistungsbasislinie werden gespeichert und für den Vergleich mit aktuell aufgezeichneten Ereignisdaten verwendet, um zu ermitteln, ob die Leistung optimal ist. Weitere Informationen finden Sie unter Verwenden von SQL Server Profiler.

  4. Erstellen von Ablaufverfolgungsvorlagen, die die zum Aufzeichnen der Ereignisse angegebenen Einstellungen enthalten.

    Ablaufverfolgungsvorlagen enthalten Spezifikationen zu den Ereignissen selbst, Ereignisdaten sowie Filter, die zum Aufzeichnen von Daten verwendet werden. Diese Vorlagen können zur späteren Überwachung einer bestimmten Gruppe von Ereignissen verwendet werden, ohne die Ereignisse, Ereignisdaten und Filter erneut zu definieren. Wenn Sie z. B. die Anzahl der Deadlocks und die Benutzer, die an diesen Deadlocks beteiligt sind, häufig überwachen möchten, können Sie eine Vorlage erstellen, die diese Ereignisse, Ereignisdaten und Ereignisfilter definiert. Speichern Sie die Vorlage, und wenden Sie den Filter erneut an, wenn Sie die Deadlocks das nächste Mal überwachen möchten. SQL Server Profiler verwendet für diesen Zweck Ablaufverfolgungsvorlagen. Weitere Informationen finden Sie unter Vorgehensweise: Festlegen der Standardeinstellungen für Ablaufverfolgungsdefinitionen (SQL Server Profiler) und Vorgehensweise: Erstellen einer Ablaufverfolgungsvorlage (SQL Server Profiler).

  5. Analysieren aufgezeichneter Ereignisdaten.

    Zum Analysieren werden die aufgezeichneten, gespeicherten Ereignisdaten in die Anwendung geladen, die die Daten aufgezeichnet hat. So kann beispielsweise eine aufgezeichnete Ablaufverfolgung von SQL Server Profiler erneut in SQL Server Profiler geladen werden, um sie anzuzeigen und zu analysieren. Weitere Informationen finden Sie unter Anzeigen und Analysieren von Ablaufverfolgungen mit SQL Server Profiler.

    Zur Analyse von Ereignisdaten gehört das Ermitteln der Abläufe und deren Ursachen. Mit diesen Informationen können Sie je nach Art der ausgeführten Analyse Änderungen zur Leistungsverbesserung vornehmen, z. B. das Hinzufügen von Arbeitsspeicher, das Ändern von Indizes und das Beheben von Codierungsproblemen im Zusammenhang mit Transact-SQL-Anweisungen oder gespeicherten Prozeduren. So kann z. B. der Database Engine (Datenbankmodul)-Optimierungsratgeber für die Analyse einer aufgezeichneten Ablaufverfolgung von SQL Server Profiler verwendet werden und Indexempfehlungen auf der Grundlage der Ergebnisse vorschlagen. Weitere Informationen finden Sie unter Optimieren des physischen Datenbankentwurfs.

  6. Wiedergeben aufgezeichneter Ereignisdaten.

    Die Wiedergabe von Ereignissen ermöglicht das Erstellen einer Testkopie der Datenbankumgebung, von der die Daten aufgezeichnet wurden, und das Wiederholen der aufgezeichneten Ereignisse, so wie sie im richtigen System ursprünglich aufgetreten sind. Diese Funktion steht nur in SQL Server Profiler zur Verfügung. Sie können sie mit der Geschwindigkeit des ursprünglichen Auftretens oder so schnell wie möglich (um das System zu belasten) oder, wie in den meisten Fällen, schrittweise wiedergeben, wodurch das System nach jedem Ereignis analysiert werden kann. Durch das Analysieren der Ergebnisse in einer Testumgebung können Sie Schäden im Produktionssystem verhindern. Weitere Informationen finden Sie unter Wiedergeben von Ablaufverfolgungen.