Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro:SQL Server
Azure SQL Database
Spravovaná instance Azure SQL
Azure Synapse Analytics
Analytics Platform System (PDW)
Koncový bod analýzy SQL v Microsoft Fabric
Sklad v Microsoft Fabric
Databáze SQL v Microsoft Fabric
Dynamický sys.dm_tran_active_transactions pohled správy vrací informace o transakcích dané instance.
| Název sloupce | Datový typ | Description |
|---|---|---|
transaction_id |
bigint | ID transakce je na úrovni instance, ne databáze. Je jedinečný pouze ve všech databázích v jedné instanci, ale není jedinečný napříč všemi serverovými instancemi. |
name |
nvarchar(32) | Název transakce. Toto se přepsá, pokud je transakce označena a označené jméno nahradí název transakce. |
transaction_begin_time |
datetime | Čas, kdy transakce začala. |
transaction_type |
int | Typ transace. 1 = Transakce čtení/zápisu 2 = Transakce pouze pro čtení 3 = Systémová transakce 4 = Distribuovaná transakce |
transaction_uow |
uniqueidentifier | Identifikátor transakční jednotky práce (UOW) pro distribuované transakce. Microsoft koordinátor distribuovaných transakcí (MS DTC) používá identifikátor UOW k práci s distribuovanou transakcí. |
transaction_state |
int | 0 = Transakce ještě nebyla zcela inicializována. 1 = Transakce byla inicializována, ale není zahájena. 2 = Transakce je aktivní. 3 = Transakce skončila. Používá se pro transakce pouze pro čtení. 4 = Proces commit byl zahájen na distribuované transakci. Pouze pro distribuované transakce. Distribuovaná transakce je stále aktivní, ale další zpracování nelze proběhnout. 5 = Transakce je v připraveném stavu a čeká na vyřešení. 6 = Transakce byla dokončena. 7 = Transakce se ruší. 8 = Transakce byla zrušena. |
transaction_status |
int | Určeno pouze pro informační účely. Není podporováno. Budoucí kompatibilita není zaručena. |
transaction_status2 |
int | Určeno pouze pro informační účely. Není podporováno. Budoucí kompatibilita není zaručena. |
dtc_state |
int |
Platí pro: Azure SQL Database. 1 = AKTIVNÍ 2 = PŘIPRAVENO 3 = ZAVÁZÁN 4 = PŘERUŠENO 5 = ZÍSKANO |
dtc_status |
int | Určeno pouze pro informační účely. Není podporováno. Budoucí kompatibilita není zaručena. |
dtc_isolation_level |
int | Určeno pouze pro informační účely. Není podporováno. Budoucí kompatibilita není zaručena. |
filestream_transaction_id |
varbinary(128) |
Platí pro: Azure SQL Database. Určeno pouze pro informační účely. Není podporováno. Budoucí kompatibilita není zaručena. |
pdw_node_id |
int |
platí pro: Azure Synapse Analytics, Analytics Platform System (PDW) Identifikátor uzlu, na který je tato distribuce zapnutá. |
Povolení
Na SQL Serveru a službě SQL Managed Instance vyžaduje VIEW SERVER STATE oprávnění.
V Microsoft Fabric je pro dotazování sys.dm_tran_active_transactionsvyžadováno členství v rolipřispěvatele nebo v privilegované roli.
U cílů služby SQL Database Basic, S0 a S1 a pro databáze v elastických fondech se vyžaduje účet správce serveru , účet správce Microsoft Entra nebo členství v ##MS_ServerStateReader##roli serveru . U všech ostatních cílů VIEW DATABASE STATE služby SQL Database se vyžaduje buď oprávnění k databázi, nebo členství v ##MS_ServerStateReader## roli serveru.
Oprávnění pro SQL Server 2022 a novější
Vyžaduje oprávnění ZOBRAZIT STAV VÝKONU SERVERU na serveru.
Poznámky
Pro označení tohoto dynamického pohledu správy z Azure Synapse Analytics nebo Analytics Platform System (PDW) použijte název sys.dm_pdw_nodes_tran_active_transactions Tato syntaxe není podporována serverless SQL poolem v Azure Synapse Analytics.
Examples
A. Použijte sys.dm_tran_active_transactions s jinými DMV, abyste získali informace o aktivních transakcích
Následující příklad ukazuje jakékoli aktivní transakce v systému. Dotaz poskytuje podrobné informace o transakci, uživatelské relaci, aplikaci, která ji odeslala, dotazu, který ji spustil, a mnoha dalších.
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;