SQL Server Profiler
SQL Server Profiler ist eine funktionsreiche Benutzeroberfläche zum Erstellen und Verwalten von Ablaufverfolgungen sowie zum Analysieren und Wiedergeben von Ablaufverfolgungsergebnissen. Die Ereignisse werden in einer Ablaufverfolgungsdatei gespeichert, die später analysiert oder beim Versuch, ein Problem zu diagnostizieren, zur Wiedergabe einer bestimmten Reihe von Schritten verwendet werden kann.
Wichtig |
---|
Wir kündigen die Veraltung von SQL Server Profiler für die Database Engine (Datenbankmodul)-Ablaufverfolgungssammlung und -Ablaufverfolgungswiedergabe an. Diese Funktionen werden in der nächsten Version von SQL Server noch unterstützt, in zukünftigen Versionen jedoch entfernt. Die betreffende Version von SQL Server wurde noch nicht festgelegt. Der Microsoft.SqlServer.Management.Trace-Namespace, der die Objekte für die Microsoft SQL Server-Ablaufverfolgung und -Wiedergabe enthält, ist ebenfalls veraltet. Beachten Sie, dass SQL Server Profiler für die Analysis Services-Arbeitsauslastungen nicht veraltet ist und weiterhin unterstützt wird. In der folgenden Tabelle werden die Funktionen angezeigt, deren Verwendung wir in SQL Server 2012 empfehlen, um Ablaufverfolgungsdaten zu erfassen und wiederzugeben: |
Funktion/Zielarbeitsauslastung |
Relationales Modul |
Analysis Services |
Ablaufverfolgungssammlung |
Grafische Benutzeroberfläche für erweiterte Ereignisse in SQL Server Management Studio |
SQL Server Profiler |
Ablaufverfolgungswiedergabe |
Distributed Replay |
SQL Server Profiler |
Vorteile von SQL Server Profiler
Microsoft SQL Server Profiler ist eine grafische Benutzeroberfläche für die SQL-Ablaufverfolgung zur Überwachung einer Instanz von Database Engine (Datenbankmodul) oder Analysis Services. Daten über die einzelnen Ereignisse können aufgezeichnet und in einer Datei oder Tabelle zur späteren Analyse gespeichert werden. Beispielsweise können Sie eine Produktionsumgebung überwachen, um festzustellen, welche gespeicherten Prozeduren langsam ablaufen und dadurch die Leistung beeinträchtigen. SQL Server Profiler wird z. B. für folgende Aktivitäten verwendet:
Schrittweises Untersuchen problematischer Abfragen, um die Ursache des Problems zu ermitteln.
Suchen und Diagnostizieren von Abfragen, die sehr langsam ausgeführt werden.
Erfassen der Transact-SQL-Anweisungen, die zu einem Problem geführt haben. Mithilfe der gespeicherten Ablaufverfolgung kann das Problem auf einem Testserver repliziert werden, um es dort zu diagnostizieren.
Überwachen der Leistung von SQL Server zur Optimierung der Arbeitsauslastung. Informationen zum Optimieren des physischen Datenbankentwurfs für Datenbankarbeitslasten finden Sie unter Datenbankoptimierungsratgeber.
Korrelieren von Leistungsindikatoren zur Diagnose von Problemen.
SQL Server Profiler unterstützt auch die Überwachung von Aktionen, die für Instanzen von SQL Server ausgeführt werden. Durch Überwachungen werden sicherheitsbezogene Aktionen aufgezeichnet, die später von einem Sicherheitsadministrator überprüft werden können.
SQL Server Profiler-Konzepte
Um SQL Server Profiler verwenden zu können, müssen Sie die Begriffe verstehen, mit denen die Funktionsweise des Tools beschrieben wird.
Hinweis |
---|
Für die Arbeit mit SQL Server Profiler ist es hilfreich, die SQL-Ablaufverfolgung zu verstehen. Weitere Informationen finden Sie unter SQL-Ablaufverfolgung. |
Ereignis
Ein Ereignis ist eine Aktion, die innerhalb einer Instanz von SQL Server Database Engine (Datenbankmodul) generiert wird. Im Folgenden sind Beispiele dafür aufgeführt:Anmeldeverbindungen, fehlgeschlagene und getrennte Verbindungen.
Die Transact-SQL-Anweisungen SELECT, INSERT, UPDATE und DELETE.
Der Status von RPC-Batches (Remote Procedure Call, Remoteprozeduraufruf).
Der Start oder das Ende einer gespeicherten Prozedur.
Der Start oder das Ende von Anweisungen innerhalb gespeicherter Prozeduren.
Der Start oder das Ende eines SQL-Batches.
Ein Fehler, der in das SQL Server-Fehlerprotokoll geschrieben wird.
Eine Sperre, die für ein Datenbankobjekt eingerichtet oder aufgehoben wird.
Ein geöffneter Cursor.
Überprüfungen der Sicherheitsberechtigungen.
Die gesamten von einem Ereignis generierten Daten werden in der Ablaufverfolgung in einer einzelnen Zeile angezeigt. Diese Zeile wird von Datenspalten unterbrochen, die Details zu den Ereignissen enthält.
Ereignisklasse
Eine Ereignisklasse ist ein Ereignistyp, dessen Ablauf verfolgt werden kann. Die Ereignisklasse enthält alle Daten, die von einem Ereignis berichtet werden können. Im Folgenden sind Beispiele für Ereignisklassen aufgeführt:SQL:BatchCompleted
Audit Login
Audit Logout
Lock:Acquired
Lock:Released
Ereigniskategorie
Eine Ereigniskategorie bestimmt, wie Ereignisse innerhalb von SQL Server Profiler zusammengefasst werden. So sind beispielsweise alle Sperrereignisklassen in der Ereigniskategorie Sperren zusammengefasst. Ereigniskategorien sind jedoch nur in SQL Server Profiler vorhanden. Dieser Begriff drückt nicht aus, wie Modulereignisse gruppiert werden.Datenspalte
Eine Datenspalte ist ein Attribut einer Ereignisklasse, die in der Ablaufverfolgung erfasst ist. Da von der Ereignisklasse der Typ der Daten festgelegt wird, die gesammelt werden können, gelten nicht alle Datenspalten für alle Ereignisklassen. In einer Ablaufverfolgung, in der die Lock:Acquired-Ereignisklasse erfasst wird, enthält die BinaryData-Datenspalte beispielsweise den Wert der gesperrten Seiten-ID oder der Zeile, aber die Integer Data-Datenspalte enthält keine Werte, weil sie nicht auf die erfasste Ereignisklasse anwendbar ist.Vorlage
Eine Vorlage definiert die Standardkonfiguration für eine Ablaufverfolgung. Dazu gehören insbesondere die Ereignisklassen, die mithilfe von SQL Server Profiler überwacht werden sollen. Sie können beispielsweise eine Vorlage erstellen, mit der die zu verwendenden Ereignisse, Datenspalten und Filter angegeben werden. Eine Vorlage wird nicht ausgeführt, sondern als Datei mit der Erweiterung TDF gespeichert. Nach dem Speichern steuert die Vorlage die Ablaufverfolgungsdaten, die beim Starten einer auf der Vorlage basierenden Ablaufverfolgung erfasst werden.Ablaufverfolgung
Eine Ablaufverfolgung zeichnet Daten auf der Grundlage der ausgewählten Ereignisklassen, Datenspalten und Filter auf. Sie können beispielsweise eine Ablaufverfolgung erstellen, um Ausnahmefehler aufzuzeichnen. Wählen Sie dazu die Exception-Ereignisklasse und die Datenspalten Fehler, Status und Schweregrad aus. Daten aus diesen drei Spalten müssen gesammelt werden, damit die Ablaufverfolgung sinnvolle Daten als Ergebnis liefert. Sie können dann eine solcherart konfigurierte Ablaufverfolgung ausführen und Daten aufgrund aller Exception-Ereignisse sammeln, die auf dem Server auftreten. Ablaufverfolgungsdaten können gespeichert oder sofort für Analysezwecke verwendet werden. Ablaufverfolgungen können zu einem späteren Zeitpunkt wiedergegeben werden, obwohl bestimmte Ereignisse wie Exception-Ereignisse nie wiedergegeben werden. Sie können die Ablaufverfolgung als Vorlage speichern, um in Zukunft ähnliche Ablaufverfolgungen zu erstellen.SQL Server bietet zwei Möglichkeiten für die Ablaufverfolgung einer Instanz von SQL Server: SQL Server Profiler und gespeicherte Systemprozeduren.
Filter
Beim Erstellen einer Ablaufverfolgung oder Vorlage können Sie Kriterien definieren, um die von dem Ereignis gesammelten Daten zu filtern. Damit Ablaufverfolgungen nicht zu groß werden, können Sie sie filtern, sodass nur eine Teilmenge der Ereignisdaten gesammelt wird. Sie können beispielsweise die Microsoft Windows-Benutzernamen in der Ablaufverfolgung auf bestimmte Benutzer beschränken, wodurch die Ausgabedatenmenge kleiner wird.Ist kein Filter eingerichtet, werden alle Ereignisse der ausgewählten Ereignisklassen in der Ablaufverfolgungsausgabe zurückgegeben.
SQL Server Profiler-Tasks
Taskbeschreibung |
Thema |
---|---|
Listet die vordefinierten Vorlagen, die SQL Server zum Überwachen bestimmter Ereignistypen bereitstellt, und die zum Wiedergeben von Ablaufverfolgungen erforderlichen Berechtigungen auf. |
|
Beschreibt, wie SQL Server Profiler ausgeführt wird. |
Erforderliche Berechtigungen zum Ausführen von SQL Server Profiler |
Beschreibt, wie eine Ablaufverfolgung erstellt wird. |
|
Beschreibt, wie Ereignisse und Datenspalten für eine Ablaufverfolgungsdatei angegeben werden. |
Angeben von Ereignissen und Datenspalten für eine Ablaufverfolgungsdatei (SQL Server Profiler) |
Beschreibt, wie Ablaufverfolgungsergebnisse in einer Datei gespeichert werden. |
Speichern von Ablaufverfolgungsergebnissen in einer Datei (SQL Server Profiler) |
Beschreibt, wie Ablaufverfolgungsergebnisse in einer Tabelle gespeichert werden. |
Speichern von Ablaufverfolgungsergebnissen in einer Tabelle (SQL Server Profiler) |
Beschreibt, wie Ereignisse in einer Ablaufverfolgung gefiltert werden. |
Filtern von Ereignissen in einer Ablaufverfolgung (SQL Server Profiler) |
Beschreibt, wie Filterinformationen angezeigt werden. |
|
Beschreibt, wie ein Filter geändert wird. |
|
Beschreibt, wie eine maximale Dateigröße für eine Ablaufverfolgungsdatei (SQL Server Profiler) festgelegt wird. |
Festlegen einer maximalen Dateigröße für eine Ablaufverfolgungsdatei (SQL Server Profiler) |
Beschreibt, wie eine maximale Tabellengröße für eine Ablaufverfolgungstabelle festgelegt wird. |
Festlegen der maximalen Tabellengröße für eine Ablaufverfolgungstabelle (SQL Server Profiler) |
Beschreibt, wie eine Ablaufverfolgung gestartet wird. |
|
Beschreibt, wie eine Ablaufverfolgung nach dem Herstellen einer Verbindung mit einem Server automatisch gestartet wird. |
|
Beschreibt, wie Ereignisse basierend auf der Ereignisstartzeit gefiltert werden. |
Filtern von Ereignissen nach Ereignisstartzeit (SQL Server Profiler) |
Beschreibt, wie Ereignisse basierend auf der Ereignisendzeit gefiltert werden. |
Filtern von Ereignissen anhand der Ereignisendzeit (SQL Server Profiler) |
Beschreibt, wie Serverprozess-IDs (SPIDs) in einer Ablaufverfolgung gefiltert werden. |
Filtern von Server-Prozess-IDs (SPIDs) in einer Ablaufverfolgung (SQL Server Profiler) |
Beschreibt, wie eine Ablaufverfolgung angehalten wird. |
|
Beschreibt, wie eine Ablaufverfolgung beendet wird. |
|
Beschreibt, wie eine Ablaufverfolgung ausgeführt wird, nachdem sie angehalten oder beendet wurde. |
Ausführen einer Ablaufverfolgung, nachdem sie angehalten oder beendet wurde (SQL Server Profiler) |
Beschreibt, wie ein Ablaufverfolgungsfenster gelöscht wird. |
Löschen des Inhalts eines Ablaufverfolgungsfensters (SQL Server Profiler) |
Beschreibt, wie ein Ablaufverfolgungsfenster geschlossen wird. |
Schließen eines Ablaufverfolgungsfensters (SQL Server Profiler) |
Beschreibt, wie Standardeinstellungen für Ablaufverfolgungsdefinitionen festgelegt werden. |
Festlegen der Standardeinstellungen für Ablaufverfolgungsdefinitionen (SQL Server Profiler) |
Beschreibt, wie Standardeinstellungen für die Ablaufverfolgungsanzeige festgelegt werden. |
Festlegen der Standardeinstellungen für die Ablaufverfolgungsanzeige (SQL Server Profiler) |
Beschreibt, wie eine Ablaufverfolgungsdatei geöffnet wird. |
|
Beschreibt, wie eine Ablaufverfolgungstabelle geöffnet wird. |
|
Beschreibt, wie eine Ablaufverfolgungstabelle wiedergegeben wird. |
Wiedergeben einer Ablaufverfolgungstabelle (SQL Server Profiler) |
Beschreibt, wie eine Ablaufverfolgungsdatei wiedergegeben wird. |
Wiedergeben einer Ablaufverfolgungsdatei (SQL Server Profiler) |
Beschreibt, wie jeweils ein einzelnes Ereignis wiedergegeben wird. |
Wiedergeben von jeweils einem einzelnen Ereignis (SQL Server Profiler) |
Beschreibt die Wiedergabe bis zu einem Breakpoint. |
|
Beschreibt die Wiedergabe bis zu einer Cursorposition. |
Wiedergeben bis zu einer Cursorposition (SQL Server Profiler) |
Beschreibt, wie ein Transact-SQL-Skript wiedergegeben wird. |
Wiedergeben eines Transact-SQL-Skripts (SQL Server Profiler) |
Beschreibt, wie eine Ablaufverfolgungsvorlage erstellt wird. |
Erstellen einer Ablaufverfolgungsvorlage (SQL Server Profiler) |
Beschreibt, wie eine Ablaufverfolgungsvorlage geändert wird. |
|
Beschreibt, wie globale Ablaufverfolgungsoptionen festgelegt werden. |
Festlegen globaler Ablaufverfolgungsoptionen (SQL Server Profiler) |
Beschreibt, wie ein Wert oder eine Datenspalte während der Ablaufverfolgung gesucht wird. |
Suchen eines Wertes oder einer Datenspalte während der Ablaufverfolgung (SQL Server Profiler) |
Beschreibt, wie eine Vorlage aus einer ausgeführten Ablaufverfolgung abgeleitet wird. |
Ableiten einer Vorlage von einer zurzeit ausgeführten Ablaufverfolgung (SQL Server Profiler) |
Beschreibt, wie eine Vorlage aus einer Ablaufverfolgungsdatei oder Ablaufverfolgungstabelle abgeleitet wird. |
|
Beschreibt, wie ein Transact-SQL-Skript für das Ausführen einer Ablaufverfolgung erstellt wird. |
Erstellen eines Transact-SQL-Skripts zum Ausführen einer Ablaufverfolgung (SQL Server Profiler) |
Beschreibt, wie eine Ablaufverfolgungsvorlage exportiert wird. |
Exportieren einer Ablaufverfolgungsvorlage (SQL Server Profiler) |
Beschreibt, wie eine Ablaufverfolgungsvorlage importiert wird. |
Importieren einer Ablaufverfolgungsvorlage (SQL Server Profiler) |
Beschreibt, wie ein Skript aus einer Ablaufverfolgung extrahiert wird. |
Extrahieren eines Skripts aus einer Ablaufverfolgung (SQL Server Profiler) |
Beschreibt, wie eine Ablaufverfolgung mit Windows-Leistungsprotokolldaten korreliert wird. |
Korrelieren einer Ablaufverfolgung mit Windows-Leistungsprotokolldaten (SQL Server Profiler) |
Beschreibt, wie in einer Ablaufverfolgung angezeigte Spalten organisiert werden. |
Organisieren von in einer Ablaufverfolgung angezeigten Spalten (SQL Server Profiler) |
Beschreibt, wie SQL Server Profiler gestartet wird. |
|
Beschreibt, wie Ablaufverfolgungen und Ablaufverfolgungsvorlagen gespeichert werden. |
Speichern von Ablaufverfolgungen und Ablaufverfolgungsvorlagen |
Beschreibt, wie Ablaufverfolgungsvorlagen geändert werden. |
|
Beschreibt, wie eine Ablaufverfolgung mit Windows-Leistungsprotokolldaten korreliert wird. |
Korrelieren einer Ablaufverfolgung mit Windows-Leistungsprotokolldaten |
Beschreibt, wie Ablaufverfolgungen mit SQL Server Profiler angezeigt und analysiert werden. |
Anzeigen und Analysieren von Ablaufverfolgungen mit SQL Server Profiler |
Beschreibt, wie Deadlocks mit SQL Server Profiler analysiert werden. |
|
Beschreibt, wie Abfragen mit SHOWPLAN-Ergebnissen in SQL Server Profiler analysiert werden. |
Analysieren von Abfragen mit SHOWPLAN-Ergebnissen in SQL Server Profiler |
Beschreibt, wie Ablaufverfolgungen mit SQL Server Profiler gefiltert werden. |
|
Beschreibt, wie die Wiedergabefunktionen von SQL Server Profiler verwendet werden. |
|
Listet die kontextbezogenen Hilfethemen für SQL Server Profiler auf. |
|
Listet die von SQL Server Profiler zur Leistungs- und Aktivitätsüberwachung verwendeten gespeicherten Systemprozeduren auf. |
Gespeicherte Prozeduren von SQL Server Profiler (Transact-SQL) |