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.