In SQL Server gibt es zwei Typen von Ablaufverfolgungsflags: Sitzung und global. Ablaufverfolgungsflags vom Typ Sitzung sind für die Dauer einer Verbindung aktiv und nur für diese Verbindung sichtbar. Globale Ablaufverfolgungsflags werden auf Serverebene festgelegt und sind für jede Verbindung auf dem Server sichtbar. Einige Flags können nur als globale Flags aktiviert werden, einige können entweder mit globalem Bereich oder mit Sitzungsbereich aktiviert werden.
Dabei gelten die folgenden Regeln:
-
Ein globales Ablaufverfolgungsflag muss global aktiviert werden. Andernfalls hat das Ablaufverfolgungsflag keine Wirkung. Es wird empfohlen, globale Ablaufverfolgungsflags beim Start mithilfe der Befehlszeilenoption -T zu aktivieren.
-
Ein Ablaufverfolgungsflag mit entweder globalem Bereich oder Sitzungsbereich kann mit dem jeweils geeigneten Bereich aktiviert werden. Ein auf Sitzungsebene aktiviertes Ablaufverfolgungsflag wirkt sich nie auf andere Sitzungen aus, und die Wirkung des Ablaufverfolgungsflags endet mit der Abmeldung der SPID, die die Sitzung geöffnet hat.
Ablaufverfolgungsflags werden mithilfe einer der folgenden Methoden auf on oder off festgelegt:
-
Mithilfe der Befehle DBCC TRACEON und DBCC TRACEOFF.
Beispiel DBCC TRACEON 2528: Verwenden Sie DBCC TRACEON mit dem Argument -1, um das Ablaufverfolgungsflag global zu aktivieren: DBCC TRACEON (2528, -1). Verwenden Sie DBCC TRACEOFF mit dem Argument -1, um ein globales Ablaufverfolgungsflag zu deaktivieren.
-
Verwenden Sie die Startoption -T, um anzugeben, dass das Ablaufverfolgungsflag beim Start auf on festgelegt werden soll.
Durch die Startoption -T wird ein Ablaufverfolgungsflag global aktiviert. Ablaufverfolgungsflags auf Sitzungsebene können nicht mit einer Startoption aktiviert werden. Weitere Informationen zu Startoptionen finden Sie unter Verwenden der Startoptionen für den SQL Server-Dienst.
Verwenden Sie den DBCC TRACESTATUS-Befehl, um zu bestimmen, welche Ablaufverfolgungsflags zurzeit aktiv sind.
Verhaltensänderungen
In SQL Server 2000 genügt der einfache Aufruf DBCC TRACEON (1204), um die Berichterstellung über Deadlocks im Fehlerprotokoll zu aktivieren. In SQL Server 2008 müssen Sie das Flag global aktivieren, da das Flag auf Sitzungsebene für den Deadlockmonitorthread nicht sichtbar ist.
Weitere Informationen zu Verhaltensänderungen finden Sie unter Fehlerhafte Änderungen an Features des Datenbankmoduls in SQL Server 2008.