Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:SQL Server
Database SQL di Azure
Istanza gestita di SQL di Azure
Azure Synapse Analytics
Piattaforma di analisi (PDW)
Endpoint di analisi SQL in Microsoft Fabric
Magazzino in Microsoft Fabric
Database SQL in Microsoft Fabric
La sys.dm_tran_active_transactions vista di gestione dinamica restituisce informazioni sulle transazioni per l'istanza.
| Nome colonna | Tipo di dati | Descrizione |
|---|---|---|
transaction_id |
bigint | ID della transazione a livello di istanza, non a livello di database. È univoco solo in tutti i database all'interno di un'istanza, ma non tra tutte le istanze del server. |
name |
nvarchar(32) | Nome della transazione. Viene sovrascritto se la transazione è contrassegnata e il nome contrassegnato sostituisce il nome della transazione. |
transaction_begin_time |
datetime | Ora di avvio della transazione. |
transaction_type |
int | Tipo di transazione. 1 = Transazione di lettura/scrittura 2 = Transazione di sola lettura 3 = Transazione di sistema 4 = Transazione distribuita |
transaction_uow |
uniqueidentifier | Identificatore dell'unità di lavoro della transazione per le transazioni distribuite. Il coordinatore delle transazioni distribuite Microsoft (MS DTC) utilizza l'identificatore UOW per lavorare con la transazione distribuita. |
transaction_state |
int | 0 = La transazione non è stata ancora inizializzata completamente. 1 = La transazione è stata inizializzata ma non è iniziata. 2 = La transazione è attiva. 3 = La transazione è terminata. Utilizzato per transazioni di sola lettura. 4 = Il processo di commit è stato inizializzato nella transazione distribuita. Solo per transazioni distribuite. La transazione distribuita è ancora attiva, ma non può essere ulteriormente elaborata. 5 = La transazione è in uno stato preparato ed è in attesa di risoluzione. 6 = È stato eseguito il commit della transazione. 7 = L'esecuzione del rollback della transazione è in corso. 8 = È stato eseguito il rollback della transazione. |
transaction_status |
int | Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future. |
transaction_status2 |
int | Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future. |
dtc_state |
int |
Si applica a: database SQL di Azure. 1 = ATTIVO 2 = PREPARATO 3 = IMPEGNATO 4 = ABORTITO 5 = RECUPERATI |
dtc_status |
int | Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future. |
dtc_isolation_level |
int | Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future. |
filestream_transaction_id |
varbinary(128) |
Si applica a: database SQL di Azure. Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future. |
pdw_node_id |
int |
Si applica a: Azure Synapse Analytics, Piattaforma di analisi (PDW) Identificatore del nodo in cui è attiva la distribuzione. |
Autorizzazioni
In SQL Server e Istanza gestita di SQL è richiesta l'autorizzazione VIEW SERVER STATE.
In Microsoft Fabric, è necessaria l'appartenenza al ruolo diworkspace Contributor o a un ruolo più privilegiato per interrogare sys.dm_tran_active_transactions.
Negli obiettivi del servizio Basic del Database SQL, S0 e S1 e per i database nei pool elastici, è richiesto l'account amministratore del server, l'account amministratore di Microsoft Entra o l’adesione nel ##MS_ServerStateReader## al ruolo del server. Per tutti gli altri obiettivi di servizio database SQL, è necessaria l'autorizzazione VIEW DATABASE STATE per il database o l'adesione ruolo del server ##MS_ServerStateReader##.
Autorizzazioni per SQL Server 2022 e versioni successive
È richiesta l'autorizzazione VIEW SERVER PERFORMANCE STATE per il server.
Osservazioni:
Per chiamare questa vista di gestione dinamica da Azure Synapse Analytics o Analytics Platform System (PDW), usa il nome sys.dm_pdw_nodes_tran_active_transactions Questa sintassi non è supportata dal server less SQL pool in Azure Synapse Analytics.
Esempi
R. Usa sys.dm_tran_active_transactions con altri DMV per trovare informazioni sulle transazioni attive
Il seguente esempio mostra tutte le transazioni attive sul sistema. La query fornisce informazioni dettagliate sulla transazione, la sessione utente, l'applicazione inviata, la query che l'ha avviata e molte altre.
SELECT
GETDATE() as now,
DATEDIFF(SECOND, transaction_begin_time, GETDATE()) as tran_elapsed_time_seconds,
st.session_id,
txt.text,
*
FROM
sys.dm_tran_active_transactions at
INNER JOIN sys.dm_tran_session_transactions st ON st.transaction_id = at.transaction_id
LEFT OUTER JOIN sys.dm_exec_sessions sess ON st.session_id = sess.session_id
LEFT OUTER JOIN sys.dm_exec_connections conn ON conn.session_id = sess.session_id
OUTER APPLY sys.dm_exec_sql_text(conn.most_recent_sql_handle) AS txt
ORDER BY
tran_elapsed_time_seconds DESC;