sys.dm_tran_current_snapshot (Transact-SQL)

Gibt eine virtuelle Tabelle zurück, in der alle aktiven Transaktionen zum Zeitpunkt des Starts der aktuellen Snapshottransaktion angezeigt werden. Falls die aktuelle Transaktion keine Snapshottransaktion ist, gibt diese Funktion keine Zeilen zurück. sys.dm_tran_current_snapshot ist mit sys.dm_tran_transactions_snapshot vergleichbar. sys.dm_tran_current_snapshot gibt jedoch nur die aktiven Transaktionen für die aktuelle Snapshottransaktion zurück.

Syntax

sys.dm_tran_current_snapshot

Zurückgegebene Tabelle

Spaltenname

Datentyp

Beschreibung

transaction_sequence_num

bigint

Die Transaktionssequenznummer der aktiven Transaktion.

Berechtigungen

Erfordert die VIEW SERVER STATE-Berechtigung auf dem Server.

Beispiele

Im folgenden Beispiel wird ein Testszenario verwendet, in dem vier gleichzeitige Transaktionen, die jeweils durch eine Transaktionssequenznummer (XSN) identifiziert werden, in einer Datenbank ausgeführt werden, für die die Optionen ALLOW_SNAPSHOT_ISOLATION und READ_COMMITTED_SNAPSHOT auf ON festgelegt sind. Die folgenden Transaktionen werden ausgeführt:

  • Bei XSN-57 handelt es sich um einen UPDATE-Vorgang unter der serialisierbaren Isolation.

  • XSN-58 entspricht XSN-57.

  • Bei XSN-59 handelt es sich um einen SELECT-Vorgang unter der Snapshotisolation.

  • XSN-60 entspricht XSN-59.

Die folgende Abfrage wird im Bereich von XSN-59 ausgeführt.

SELECT 
    transaction_sequence_num
  FROM sys.dm_tran_current_snapshot;

Dies ist das Resultset.

transaction_sequence_num
------------------------
57
58

Die Ergebnisse zeigen an, dass XSN-57 und XSN-58 zum Zeitpunkt des Starts der Snapshottransaktion XSN-59 aktiviert waren. Das gleiche Ergebnis besteht, sogar nachdem für XSN-57 und XSN-58 ein Commit oder Rollback ausgeführt wurde, bis die Snapshottransaktion fertig gestellt ist.

Die gleiche Abfrage wird im Bereich von XSN-60 ausgeführt.

Dies ist das Resultset.

transaction_sequence_num
------------------------
57
58
59

Die Ausgabe für XSN-60 enthält die gleichen Transaktionen wie für XSN-59, enthält jedoch auch XSN-59. Diese war beim Start von XSN-60 aktiv.