Filtern einer Ablaufverfolgung

Gilt für:SQL Server

Durch Filter werden die in einer Ablaufverfolgung aufgezeichneten Ereignisse eingeschränkt. Ist kein Filter eingerichtet, werden alle Ereignisse der ausgewählten Ereignisklassen in der Ablaufverfolgungsausgabe zurückgegeben. Wenn Sie z. B. die Benutzernamen von Windows in der Ablaufverfolgung auf bestimmte Benutzer beschränken, werden die Ausgabedaten auf die für Sie interessanten Benutzer reduziert.

Es ist nicht obligatorisch, einen Filter für eine Ablaufverfolgung festzulegen. Durch einen Filter wird jedoch der bei der Ablaufverfolgung entstehende Verarbeitungsaufwand verringert. Durch einen Filter werden genauer ausgewählte Daten zurückgegeben, wodurch sich Leistungsanalyse und -überwachung vereinfachen.

Um die bei einer Ablaufverfolgung aufgezeichneten Ereignisdaten zu filtern, wählen Sie die entsprechenden Kriterien für das Ablaufverfolgungsereignis aus, sodass bei der Ablaufverfolgung nur die benötigten Daten zurückgegeben werden. Sie können beispielsweise festlegen, dass die Überwachung der Aktivität einer bestimmten Anwendung bei der Ablaufverfolgung eingeschlossen oder ausgeschlossen wird.

Hinweis

Wenn SQL Server Profiler Ablaufverfolgungen erstellt, filtert er standardmäßig seine eigene Aktivität aus.

Ein weiteres Beispiel ist die Überwachung von Abfragen, um die Batches zu ermitteln, deren Ausführung am längsten dauert. Hier können Sie die Kriterien für die Ereignisablaufverfolgung so festlegen, dass ausschließlich jene Batches überwacht werden, deren Ausführung länger als 30 Sekunden dauert (ein CPU-Mindestwert von 30.000 Millisekunden).

Richtlinien für die Erstellung von Filtern

Um eine Ablaufverfolgung zu filtern, gehen Sie im Allgemeinen nach der folgenden Schrittfolge vor.

  1. Entscheiden Sie, welche Ereignisse in die Ablaufverfolgung eingeschlossen werden sollen.

  2. Bestimmen Sie die Daten und Datenspalten, die die benötigten Informationen enthalten.

  3. Bestimmen Sie eine Untergruppe der benötigten Daten, und definieren Sie auf der Grundlage dieser Datenuntergruppe Filter.

Beispielsweise möchten Sie nur Ereignisse verfolgen, die länger als eine bestimmte Zeit dauern. In diesem Fall können Sie eine Ablaufverfolgung erstellen, die Ereignisse umfasst, bei denen die Datenspalte Duration größer ist als 300 Millisekunden. Ereignisse, deren Ausführung weniger als 300 Millisekunden dauert, werden bei der Ablaufverfolgung nicht berücksichtigt.

Zur Erstellung von Filtern können Sie gespeicherte Prozeduren aus SQL Server Profiler oder Transact-SQL verwenden.

So filtern Sie Ereignisse in einer Ablaufverfolgungsvorlage

Filtern von Ereignissen in einer Ablaufverfolgung (SQL Server Profiler)

Festlegen eines Ablaufverfolgungsfilters (Transact-SQL)

So ändern Sie Filter

Ändern eines Filters (SQL Server Profiler)

Ob Filter verfügbar sind, ist von der Datenspalte abhängig. Einige Datenspalten können nicht gefiltert werden. Filterbare Datenspalten können nur durch bestimmte relationale Operatoren gefiltert werden, wie Sie der folgenden Tabelle entnehmen können.

Relationaler Operator Operatorsymbol Beschreibung
Like LIKE Die Ereignisablaufverfolgungsdaten müssen dem eingegebenen Text entsprechen. Mehrere Werte sind zulässig.
Nicht wie Nicht wie Die Ereignisablaufverfolgungsdaten dürfen nicht dem eingegebenen Text entsprechen. Mehrere Werte sind zulässig.
Ist gleich = Die Ereignisablaufverfolgungsdaten müssen dem eingegebenen Wert entsprechen. Mehrere Werte sind zulässig.
Ungleich <> Die Ereignisablaufverfolgungsdaten dürfen dem eingegebenen Wert nicht entsprechen. Mehrere Werte sind zulässig.
Größer als > Die Ereignisablaufverfolgungsdaten müssen größer als der eingegebene Wert sein.
Größer als oder gleich >= Die Ereignisablaufverfolgungsdaten müssen mindestens so groß wie der eingegebene Wert sein.
Kleiner als < Die Ereignisablaufverfolgungsdaten müssen kleiner als der eingegebene Wert sein.
Kleiner als oder gleich <= Die Ereignisablaufverfolgungsdaten dürfen höchstens so groß wie der eingegebene Wert sein.

In der folgenden Tabelle sind die filterbaren Datenspalten und die verfügbaren relationalen Operatoren aufgelistet.

Datenspalten Relationale Operatoren
ApplicationName LIKE, NOT LIKE
BigintData1 =, <>, >=, <=
BigintData2 =, <>, >=, <=
BinaryData Verwenden Sie SQL Server Profiler, um Ereignisse in dieser Datenspalte zu filtern. Weitere Informationen finden Sie unter Filtern von Ablaufverfolgungen mit SQL Server Profiler.
ClientProcessID =, <>, >=, <=
ColumnPermissions =, <>, >=, <=
CPU =, <>, >=, <=
DatabaseID =, <>, >=, <=
DatabaseName LIKE, NOT LIKE
DBUserName LIKE, NOT LIKE
Dauer =, <>, >=, <=
EndTime >=, <=
Error =, <>, >=, <=
EventSubClass =, <>, >=, <=
FileName LIKE, NOT LIKE
GUID Verwenden Sie SQL Server Profiler, um Ereignisse in dieser Datenspalte zu filtern. Weitere Informationen finden Sie unter Filtern von Ablaufverfolgungen mit SQL Server Profiler.
Handle =, <>, >=, <=
HostName LIKE, NOT LIKE
IndexID =, <>, >=, <=
IntegerData =, <>, >=, <=
IntegerData2 =, <>, >=, <=
IsSystem =, <>, >=, <=
LineNumber =, <>, >=, <=
LinkedServerName LIKE, NOT LIKE
LoginName LIKE, NOT LIKE
LoginSid Verwenden Sie SQL Server Profiler, um Ereignisse in dieser Datenspalte zu filtern. Weitere Informationen finden Sie unter Filtern von Ablaufverfolgungen mit SQL Server Profiler.
MethodName LIKE, NOT LIKE
Mode =, <>, >=, <=
NestLevel =, <>, >=, <=
NTDomainName LIKE, NOT LIKE
NTUserName LIKE, NOT LIKE
ObjectID =, <>, >=, <=
ObjectID2 =, <>, >=, <=
ObjectName LIKE, NOT LIKE
ObjectType =, <>, >=, <=
Offset =, <>, >=, <=
OwnerID =, <>, >=, <=
OwnerName LIKE, NOT LIKE
ParentName LIKE, NOT LIKE
Berechtigungen =, <>, >=, <=
ProviderName LIKE, NOT LIKE
Reads =, <>, >=, <=
RequestID =, <>, >=, <=
RoleName LIKE, NOT LIKE
RowCounts =, <>, >=, <=
SessionLoginName LIKE, NOT LIKE
Severity =, <>, >=, <=
SourceDatabaseID =, <>, >=, <=
SPID =, <>, >=, <=
SqlHandle Verwenden Sie SQL Server Profiler, um Ereignisse in dieser Datenspalte zu filtern. Weitere Informationen finden Sie unter Filtern von Ablaufverfolgungen mit SQL Server Profiler.
StartTime >=, <=
State =, <>, >=, <=
Erfolgreich =, <>, >=, <=
TargetLoginName LIKE, NOT LIKE
TargetLoginSid Verwenden Sie SQL Server Profiler, um Ereignisse in dieser Datenspalte zu filtern. Weitere Informationen finden Sie unter Filtern von Ablaufverfolgungen mit SQL Server Profiler.
TargetUserName LIKE, NOT LIKE
TextData * LIKE, NOT LIKE
TransactionID =, <>, >=, <=
Typ =, <>, >=, <=
Writes =, <>, >=, <=
XactSequence =, <>, >=, <=

* Wenn Ablaufverfolgungsereignisse aus dem osql-Hilfsprogramm oder sqlcmd-Hilfsprogrammausgeführt werden, hängen Sie immer an Filter in der Datenspalte "TextData" an%.

Die SQL-Ablaufverfolgung nimmt aus Gründen der Sicherheit automatisch alle Informationen aus sicherheitsbezogenen gespeicherten Prozeduren von der Ablaufverfolgung aus, die sich auf Kennwörter auswirken. Dieser Sicherheitsmechanismus kann nicht konfiguriert werden und ist immer wirksam. Benutzer, die andernfalls über die Berechtigung zum Nachverfolgen aller Aktivitäten auf SQL Server verfügen, werden daran gehindert, Kennwörter zu erfassen.

Die folgenden sicherheitsbezogenen Prozeduren werden zwar überwacht, es wird jedoch keine Ausgabe in die TextData -Datenspalte geschrieben:

sp_addapprole (Transact-SQL)

sp_adddistpublisher (Transact-SQL)

sp_adddistributiondb (Transact-SQL)

sp_adddistributor (Transact-SQL)

sp_addlinkedserver (Transact-SQL)

sp_addlinkedsrvlogin (Transact-SQL)

sp_addlogin (Transact-SQL)

sp_addmergepullsubscription_agent (Transact-SQL)

sp_addpullsubscription_agent (Transact-SQL)

sp_addremotelogin (Transact-SQL)

sp_addsubscriber (Transact-SQL)

sp_approlepassword (Transact-SQL)

sp_changedistpublisher (Transact-SQL)

sp_changesubscriber (Transact-SQL)

sp_dsninfo (Transact-SQL)

sp_helpsubscription_properties (Transact-SQL)

sp_link_publication (Transact-SQL)

sp_password (Transact-SQL)

sp_setapprole (Transact-SQL)