Szenarien für die Verwendung von SQL Server Profiler
Der erste Schritt für die Verwendung von SQL Server Profiler besteht im Identifizieren der Gründe für die Überwachung einer Instanz von SQL Server. In diesem Thema werden typische Szenarien behandelt, in denen Sie mit SQL Server Profiler Ablaufverfolgungsinformationen sammeln können.
Dies sind typische Szenarien für die Verwendung von SQL Server Profiler:
Suchen der Abfragen mit den schlechtesten Leistungen.
Sie können z. B. eine Ablaufverfolgung erstellen, die Ereignisse im Zusammenhang mit den Ereignisklassen der Ereigniskategorien TSQL und Gespeicherte Prozeduren (RPC:Completed und SQL:BatchCompleted) aufzeichnet. Fügen Sie der Ablaufverfolgung alle Datenspalten hinzu, gruppieren Sie nach Duration, und geben Sie Ereigniskriterien an. Wenn Sie z. B. angeben, dass Duration für das Ereignis mindestens 10000 Mikrosekunden betragen muss, eliminieren Sie Ereignisse von kürzerer Dauer aus der Ablaufverfolgung. Der Mindestwert für Duration kann nach Bedarf erhöht werden. Wenn Sie jeweils nur eine Datenbank überwachen möchten, geben Sie einen Wert für das Ereigniskriterium DatabaseID an.
Identifizieren der Ursache für einen Deadlock.
Sie können z. B. eine Ablaufverfolgung erstellen, die Ereignisse im Zusammenhang mit den Ereignisklassen der Ereigniskategorien TSQL und Gespeicherte Prozeduren (RPC:Starting und SQL:BatchStarting) und den Ereignisklassen der Sperren-Ereigniskategorie (Deadlock graph, Lock:Deadlock oder Lock:DeadlockChain) aufzeichnen. Fügen Sie der Ablaufverfolgung alle Datenspalten hinzu, und gruppieren Sie nach EventClass. Wenn Sie jeweils nur eine Datenbank überwachen möchten, geben Sie einen Wert für das Ereigniskriterium DatabaseID an. Wenn Sie die Deadlock graph-Ereignisklasse angeben, erstellt SQL Server Profiler eine grafische Darstellung des Deadlocks. Weitere Informationen finden Sie unter Analysieren von Deadlocks mit SQL Server Profiler.
Führen Sie einen der folgenden Schritte aus, um die an einem Deadlock beteiligten Verbindungen anzuzeigen:
Öffnen Sie die Ablaufverfolgung, die die aufgezeichneten Daten enthält, gruppieren Sie die Daten nach ClientProcessID, und erweitern Sie beide Verbindungen, die am Deadlock beteiligt sind.
Speichern Sie die aufgezeichneten Daten in einer Ablaufverfolgungsdatei, und öffnen Sie diese Datei zweimal, um sie in zwei separaten SQL Server Profiler-Fenstern anzuzeigen. Gruppieren Sie die aufgezeichneten Daten nach ClientProcessID, und erweitern Sie die am Deadlock beteiligte Clientprozess-ID. Jede am Deadlock beteiligte Verbindung wird in einem gesonderten Fenster angezeigt. Zeigen Sie die Fenster untereinander an, um die Ereignisse sichtbar zu machen, die zu diesem Deadlock führten. Wenn Sie bestimmte Deadlockdaten in einer Datei speichern möchten, klicken Sie mit der rechten Maustaste auf das Deadlockereignis, und klicken Sie auf Ereignisdaten extrahieren.
Überwachen der Leistung von gespeicherten Prozeduren.
Sie können z. B. eine Ablaufverfolgung erstellen, die Ereignisse im Zusammenhang mit den Ereignisklassen der Gespeicherte Prozeduren-Ereigniskategorie (SP:Completed, SP:Starting, SP:StmtCompleted und SP:StmtStarting) und den Ereignisklassen der TSQL-Ereigniskategorie (SQL:BatchStarting und SQL:BatchCompleted) aufzeichnen. Fügen Sie der Ablaufverfolgung alle erforderlichen Datenspalten hinzu, und gruppieren Sie nach ClientProcessID. Wenn Sie jeweils nur eine Datenbank überwachen möchten, geben Sie mithilfe des Datenbank-ID-Filters einen Wert für das Ereigniskriterium DatabaseID an. Wenn Sie entsprechend jeweils nur eine gespeicherte Prozedur überwachen möchten, geben Sie mithilfe des Objekt-ID-Filters einen Wert für das Ereigniskriterium Object ID an.
Überwachen der SQL Server-Aktivität.
Wenn z. B. der Sicherheitsadministrator stets wissen muss, welche Benutzer am Server angemeldet sind, kann eine SQL Server Profiler-Ablaufverfolgung eine vollständige Aufstellung der Benutzer liefern, die sich am Server an- oder abgemeldet haben. Diese Informationen können für rechtliche oder technische Zwecke verwendet werden.
Erstellen Sie eine Ablaufverfolgung, indem Sie das Audit Login-Ereignis auswählen. Um die entsprechenden Informationen zurückzugeben, geben Sie die folgenden Datenspalten an: EventClass (standardmäßig ausgewählt), EventSubClass, LoginSID, LoginName.
Überwachen der Transact-SQL-Aktivität pro Benutzer.
Sie können eine Ablaufverfolgung erstellen, die Ereignisse im Zusammenhang mit den Ereignisklassen der Sitzungen-Ereigniskategorie (ExistingConnection) und Ereignisklassen der TSQL-Ereigniskategorie aufzeichnet. Fügen Sie der Ablaufverfolgung alle Datenspalten hinzu, geben Sie keine Ereigniskriterien an, und gruppieren Sie die aufgezeichneten Ereignisse nach DBUserName.
Sammeln einer repräsentativen Stichprobe von Ereignissen für Belastungstests.
SQL Server Profiler stellt eine vordefinierte TSQL_Replay-Vorlage für iterative Optimierungen, wie z. B. Vergleichstests, bereit.
Sammeln einer Stichprobe von Ereignissen zum Optimieren des Datenbankentwurfs mithilfe des Optimierungsratgebers von Database Engine (Datenbankmodul).
SQL Server Profiler stellt eine vordefinierte Optimierungsvorlage bereit, mit der die entsprechenden Transact-SQL-Ereignisse in der Ablaufverfolgungsausgabe gesammelt werden, damit sie als Arbeitsauslastung für den Optimierungsratgeber von Database Engine (Datenbankmodul) verwendet werden können.
Siehe auch