Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analysplattformssystem (PDW)
SQL-analysslutpunkt i Microsoft Fabric
Lager i Microsoft Fabric
SQL-databas i Microsoft Fabric
Den dynamiska sys.dm_tran_active_transactions hanteringsvyn returnerar information om transaktioner för instansen.
| Kolumnnamn | Datatyp | Description |
|---|---|---|
transaction_id |
bigint | ID för transaktionen på instansnivå, inte databasnivå. Den är endast unik över alla databaser inom en instans men inte unik över alla serverinstanser. |
name |
nvarchar(32) | Transaktionsnamn. Detta skrivs över om transaktionen är markerad och det markerade namnet ersätter transaktionsnamnet. |
transaction_begin_time |
datetime | Tiden då transaktionen startade. |
transaction_type |
int | Typ av transaktion. 1 = Läs/skriv-transaktion 2 = Skrivskyddad transaktion 3 = Systemtransaktion 4 = Distribuerad transaktion |
transaction_uow |
uniqueidentifier | Transaktionsenhets-/arbetsidentifierare (UOW) för distribuerade transaktioner. Microsofts distribuerade transaktionskoordinator (MS DTC) använder UOW-identifieraren för att arbeta med den distribuerade transaktionen. |
transaction_state |
int | 0 = Transaktionen har ännu inte helt initierats. 1 = Transaktionen har initierats men har inte startats. 2 = Transaktionen är aktiv. 3 = Transaktionen har avslutats. Används för skrivskyddade transaktioner. 4 = Commit-processen har initierats på den distribuerade transaktionen. Endast för distribuerade transaktioner. Den distribuerade transaktionen är fortfarande aktiv men vidare bearbetning kan inte genomföras. 5 = Transaktionen är i ett förberedt tillstånd och väntar på lösning. 6 = Transaktionen har genomförts. 7 = Transaktionen rullas tillbaka. 8 = Transaktionen har rullats tillbaka. |
transaction_status |
int | Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte. |
transaction_status2 |
int | Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte. |
dtc_state |
int |
gäller för: Azure SQL Database. 1 = AKTIV 2 = FÖRBEREDD 3 = ENGAGERAD 4 = AVBRUTET 5 = ÅTERHÄMTAD |
dtc_status |
int | Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte. |
dtc_isolation_level |
int | Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte. |
filestream_transaction_id |
varbinary(128) |
gäller för: Azure SQL Database. Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte. |
pdw_node_id |
int |
gäller för: Azure Synapse Analytics, Analytics Platform System (PDW) Identifieraren för noden som den här fördelningen är på. |
Permissions
På SQL Server och SQL Managed Instance kräver VIEW SERVER STATE behörighet.
I Microsoft Fabric krävs medlemskap i Contributor-arbetsytsrollen eller den mer privilegierade rollen för att söka sys.dm_tran_active_transactions.
I SQL Database Grundläggande, S0och S1 tjänstmål och för databaser i elastiska pooler, serveradministratör konto, Microsoft Entra-administratör konto eller medlemskap i ##MS_ServerStateReader##serverrollen krävs. För alla andra SQL Database-tjänstmål krävs antingen VIEW DATABASE STATE behörighet för databasen eller medlemskap i ##MS_ServerStateReader## serverrollen.
Behörigheter för SQL Server 2022 och senare
Kräver BEHÖRIGHET FÖR VISNINGSSERVERNS PRESTANDATILLSTÅND på servern.
Anmärkningar
För att anropa denna dynamiska hanteringsvy från Azure Synapse Analytics eller Analytics Platform System (PDW), använd namnet sys.dm_pdw_nodes_tran_active_transactions Denna syntax stöds inte av serverless SQL-pool i Azure Synapse Analytics.
Examples
A. Använd sys.dm_tran_active_transactions med andra DMV:er för att hitta information om aktiva transaktioner
Följande exempel visar alla aktiva transaktioner i systemet. Frågan ger detaljerad information om transaktionen, användarsessionen, applikationen som skickades in, och frågan som startade den samt många andra.
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;