Filtern einer Ablaufverfolgung
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 Ablaufverfolgungen durch SQL Server Profiler erstellt werden, werden die Profiler-Aktivitäten standardmäßig herausgefiltert. |
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.
Entscheiden Sie, welche Ereignisse in die Ablaufverfolgung eingeschlossen werden sollen.
Bestimmen Sie die Daten und Datenspalten, die die benötigten Informationen enthalten.
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 |
---|---|---|
Wie |
LIKE |
Die Ereignisablaufverfolgungsdaten müssen dem eingegebenen Text entsprechen. Mehrere Werte sind zulässig. |
Nicht wie |
NOT LIKE |
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 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 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 die 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 |
Duration |
=, <>, >=, <= |
EndTime |
>=, <= |
Error |
=, <>, >=, <= |
EventSubClass |
=, <>, >=, <= |
FileName |
LIKE, NOT LIKE |
GUID |
Verwenden Sie SQL Server Profiler, um die 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 die 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 |
Permissions |
=, <>, >=, <= |
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 die Ereignisse in dieser Datenspalte zu filtern. Weitere Informationen finden Sie unter Filtern von Ablaufverfolgungen mit SQL Server Profiler. |
StartTime |
>=, <= |
State |
=, <>, >=, <= |
Success |
=, <>, >=, <= |
TargetLoginName |
LIKE, NOT LIKE |
TargetLoginSid |
Verwenden Sie SQL Server Profiler, um die Ereignisse in dieser Datenspalte zu filtern. Weitere Informationen finden Sie unter Filtern von Ablaufverfolgungen mit SQL Server Profiler. |
TargetUserName |
LIKE, NOT LIKE |
TextData 1 |
LIKE, NOT LIKE |
TransactionID |
=, <>, >=, <= |
Typ |
=, <>, >=, <= |
Writes |
=, <>, >=, <= |
XactSequence |
=, <>, >=, <= |
1 Wenn die Ablaufverfolgung für Ereignisse aus den Hilfsprogrammen osql oder sqlcmd ausgeführt wird, muss den Filtern in der TextData-Datenspalte immer % angehängt werden.
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. Auf diese Weise wird die Aufzeichnung von Kennwörtern durch Benutzer verhindert, die normalerweise berechtigt sind, Ablaufverfolgungen für alle Aktivitäten in SQL Server auszuführen.
Die folgenden sicherheitsbezogenen Prozeduren werden zwar überwacht, es wird jedoch keine Ausgabe in die TextData-Datenspalte geschrieben:
sp_adddistpublisher (Transact-SQL)
sp_adddistributiondb (Transact-SQL)
sp_adddistributor (Transact-SQL)
sp_addlinkedserver (Transact-SQL)
sp_addlinkedsrvlogin (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_helpsubscription_properties (Transact-SQL)