sys.dm_tran_current_transaction
Data aggiornamento: 5 dicembre 2005
Restituisce una riga singola che visualizza informazioni sullo stato della transazione nella sessione corrente.
Sintassi
sys.dm_tran_current_transaction
Tabella restituita
Nome colonna | Tipo di dati | Descrizione |
---|---|---|
transaction_id |
bigint |
ID transazione dello snapshot corrente. |
transaction_sequence_num |
bigint |
Numero di sequenza della transazione che genera la versione del record. |
transaction_is_snapshot |
bit |
Stato di isolamento dello snapshot. Questo valore è 1 se la transazione viene avviata con isolamento dello snapshot. In caso contrario, il valore è 0. |
first_snapshot_sequence_num |
bigint |
Numero di sequenza più basso delle transazioni attive nel momento in cui è stato eseguito uno snapshot. Al momento dell'esecuzione, una transazione snapshot esegue uno snapshot di tutte le transazioni attive in quel momento. Per le transazioni non snapshot, il valore di questa colonna è 0. |
last_transaction_sequence_num |
bigint |
Numero di sequenza globale. Questo valore rappresenta l'ultimo numero di sequenza della transazione generato dal sistema. |
first_useful_sequence_num |
bigint |
Numero di sequenza globale. Questo valore rappresenta il numero di sequenza della transazione meno recente con versioni di riga che devono essere mantenute nell'archivio delle versioni. Le versioni di riga create da transazioni precedenti possono essere rimosse. |
Autorizzazioni
È richiesta l'autorizzazione VIEW SERVER STATE nel server.
Esempi
Nell'esempio seguente viene utilizzato uno scenario di test in cui quattro transazioni simultanee, ognuna identificata da un numero di sequenza della transazione (XSN), vengono eseguite in un database con le opzioni ALLOW_SNAPSHOT_ISOLATION e READ_COMMITTED_SNAPSHOT impostate su ON. Vengono eseguite le transazioni seguenti:
- XSN-57 è un'operazione di aggiornamento con isolamento serializzabile.
- XSN-58 è uguale a XSN-57.
- XSN-59 è un'operazione di selezione con isolamento dello snapshot.
- XSN-60 è uguale a XSN-59.
Nell'ambito di ogni transazione viene eseguita la query seguente.
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;
Set di risultati per 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
L'output indica che XSN-59 è una transazione snapshot che utilizza XSN-57 come prima transazione attiva all'avvio di XSN-59. XSN-59 leggerà pertanto i dati con commit eseguito da transazioni dotate di numero di sequenza della transazione inferiore a XSN-57.
Set di risultati per 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
Poiché XSN-57 non è una transazione snapshot, first_snapshot_sequence_num
è NULL
.
Vedere anche
Riferimento
Funzioni e viste a gestione dinamica
Funzioni e viste a gestione dinamica relative alle transazioni
Guida in linea e informazioni
Cronologia modifiche
Versione
Cronologia
5 dicembre 2005
Termine
Definizione
Nuovo contenutoAggiunta di un esempio.