sys.dm_tran_transactions_snapshot
Aktualisiert: 05. Dezember 2005
Gibt eine virtuelle Tabelle für die Sequenznummer (sequence_number) von Transaktionen zurück, die beim Starten der einzelnen Snapshottransaktionen aktiviert sind. Die von dieser Sicht zurückgegebenen Informationen können Ihnen bei folgenden Aufgaben helfen:
- Finden der Anzahl derzeit aktiver Snapshottransaktionen.
- Identifizieren von Datenänderungen, die von einer bestimmten Snapshottransaktion ignoriert werden. Für eine Transaktion, die beim Start einer Snapshottransaktion aktiviert ist, werden alle Datenänderungen durch diese Transaktion, selbst nach dem Commit dieser Transaktion, von der Snapshottransaktion ignoriert.
Betrachten Sie beispielsweise die folgende Ausgabe von sys.dm_tran_transactions_snapshot:
transaction_sequence_num snapshot_id snapshot_sequence_num
------------------------ ----------- ---------------------
59 0 57
59 0 58
60 0 57
60 0 58
60 0 59
60 3 57
60 3 58
60 3 59
60 3 60
Die transaction_sequence_num
-Spalte identifiziert die Transaktionssequenznummer (XSN) der aktuellen Snapshottransaktionen. Die Ausgabe zeigt zwei Transaktionssequenznummern: 59
und 60
. Die snapshot_sequence_num
-Spalte identifiziert die Transaktionssequenznummer der Transaktionen, die beim Start jeder Snapshottransaktion aktiviert sind.
Die Ausgabe zeigt, dass Snapshottransaktion XSN-59 startet, während zwei aktive Transaktionen, XSN-57 und XSN-58, ausgeführt werden. Wenn XSN-57 oder XSN-58 Datenänderungen ausführt, ignoriert XSN-59 die Änderungen und verwendet die Zeilenversionsverwaltung, um eine hinsichtlich der Transaktion konsistente Sicht der Datenbank bereitzustellen.
Snapshottransaktion XSN-60 ignoriert Datenänderungen, die von XSN-57 und XSN-58 sowie XSN 59 ausgeführt werden.
Syntax
dm_tran_transactions_snapshot
Zurückgegebene Tabelle
Spaltenname | Datentyp | Beschreibung |
---|---|---|
transaction_sequence_num |
bigint |
Transaktionssequenznummer (XSN) einer Snapshottransaktion. |
snapshot_id |
int |
Snapshot-ID für jede Transact-SQL-Anweisung, die unter der Snapshotoption READ COMMITTED mit Zeilenversionsverwaltung gestartet wurde. Mit diesem Wert wird eine im Hinblick auf Transaktionen konsistente Sicht der Datenbank generiert, die jede Abfrage unterstützt, die unter der Snapshotoption READ COMMITTED mit Zeilenversionsverwaltung ausgeführt wird. |
snapshot_sequence_num |
bigint |
Die Transaktionssequenznummer einer Transaktion, die beim Starten der Snapshottransaktion aktiviert war. |
Hinweise
Beim Starten einer Snapshottransaktion zeichnet Datenbankmodul alle zu diesem Zeitpunkt aktiven Transaktionen auf. sys.dm_tran_transactions_snapshot meldet diese Informationen für alle derzeit aktiven Snapshottransaktionen.
Jede Transaktion wird durch eine Transaktionssequenznummer identifiziert, die zu Transaktionsbeginn zugewiesen wird. Transaktionen starten zu dem Zeitpunkt, zu dem eine BEGIN TRANSACTION- oder BEGIN WORK-Anweisung ausgeführt wird. Datenbankmodul ordnet hingegen die Transaktionssequenznummer mit der Ausführung der ersten Transact-SQL-Anweisung zu, die nach der BEGIN TRANSACTION- oder BEGIN WORK-Anweisung auf Daten zugreift. Transaktionssequenznummern werden um eins erhöht.
Berechtigungen
Erfordert die VIEW SERVER STATE-Berechtigung auf dem Server.
Siehe auch
Verweis
Dynamische Verwaltungssichten und -funktionen
Dynamische Verwaltungssichten und Funktionen in Verbindung mit Transaktionen
Hilfe und Informationen
Informationsquellen für SQL Server 2005
Änderungsverlauf
Version
Verlauf
05. Dezember 2005
Term
Definition
Geänderter Inhalt:
- Abschnitt Einführung erweitert, um Informationen über den Zweck der dynamischen Verwaltungssicht hinzuzufügen.
- Abschnitt Hinweise erweitert, um die Zuweisung der Transaktionssequenznummern näher zu erläutern.