sys.dm_tran_current_transaction (języka Transact-SQL)
Zwraca pojedynczy wiersz, który wyświetla informacje o stanie transakcji w bieżącej sesja.
Składnia
sys.dm_tran_current_transaction
Zwracana tabela
Nazwa kolumny |
Typ danych |
Opis |
---|---|---|
transaction_id |
bigint |
Identyfikator transakcji bieżącej migawka. |
transaction_sequence_num |
bigint |
Numer transakcji, która generuje rekord wersjasekwencji. |
transaction_is_snapshot |
bit |
Migawki stanu izolacji.Ta wartość jest 1, jeśli transakcja została uruchomiona w izolacji migawka .W przeciwnym razie wartość jest równa 0. |
first_snapshot_sequence_num |
bigint |
Najniższy numer sekwencji transakcji transakcji, które były aktywne, kiedy migawka zostało zrobione.Na wykonanie transakcji migawka pobiera migawka wszystkich aktywnych transakcji w tym czas.Nonsnapshot transakcji w tej kolumna wyświetlana 0. |
last_transaction_sequence_num |
bigint |
Numer sekwencyjny globalnego.Wartość ta oznacza ostatni numer sekwencji transakcji została wygenerowana przez system. |
first_useful_sequence_num |
bigint |
Numer sekwencyjny globalnego.Wartość ta reprezentuje najstarsze numer sekwencji transakcji transakcji, która ma wersje wierszy, które muszą być przechowywane w magazynie wersja .Można usunąć wersje wierszy, które zostały utworzone przez wcześniejsze transakcje. |
Uprawnienia
Wymaga uprawnienia Wyświetlanie stanu serwera na serwerze.
Przykłady
W poniższym przykładzie użyto Scenariusz testów działa cztery jednoczesnych transakcji, każdy identyfikowane przez numer sekwencji transakcji (XSN) w baza danych o ALLOW_SNAPSHOT_ISOLATION i READ_COMMITTED_SNAPSHOT opcje zestaw na.Są uruchomione następujące transakcje:
XSN 57 jest operacją update w izolacji możliwy do serializacji.
XSN 58 jest taka sama jak XSN 57.
XSN 59 jest operacją select w izolacji migawka .
XSN-60 is the same as XSN-59.
Następująca kwerenda jest wykonywana w zakres każdej transakcji.
SELECT
transaction_id
transaction_sequence_num
transaction_is_snapshot
first_snapshot_sequence_num
last_transaction_sequence_num
first_useful_sequence_num
FROM sys.dm_tran_current_transaction;
W tym polu jest wynikiem XSN 59.
transaction_id transaction_sequence_num transaction_is_snapshot
-------------------- ------------------------ -----------------------
9387 59 1
first_snapshot_sequence_num last_transaction_sequence_num
--------------------------- -----------------------------
57 61
first_useful_sequence_num
-------------------------
57
Dane wyjściowe pokazuje, że XSN 59 transakcji migawka , która używa XSN 57 jako pierwszej transakcji, który był aktywny podczas uruchamiania XSN 59.Oznacza to, że XSN 59 odczytuje dane popełnionych przez transakcji, które mają niższe niż XSN 57 numer sekwencji transakcji.
Here is the result for XSN-57.
transaction_id transaction_sequence_num transaction_is_snapshot
-------------------- ------------------------ -----------------------
9295 57 0
first_snapshot_sequence_num last_transaction_sequence_num
--------------------------- -----------------------------
NULL 61
first_useful_sequence_num
-------------------------
57
Ponieważ XSN 57 nie transakcji migawka first_snapshot_sequence_num jest NULL.