Filtern einer Ablaufverfolgung

Durch Filter werden die in einer Ablaufverfolgung aufgezeichneten Ereignisse eingeschränkt. Wenn kein Filter festgelegt ist, 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.

HinweisHinweis

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.

  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

So ändern Sie Filter

Vorgehensweise: Ä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

TextData1

LIKE, NOT LIKE

TransactionID

=, <>, >=, <=

Type

=, <>, >=, <=

Writes

=, <>, >=, <=

XactSequence

=, <>, >=, <=

1 Wenn die Ablaufverfolgung für Ereignisse aus den Dienstprogrammen 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_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)