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 SQLAzure Synapse Analytics
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 transakce. 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 Identifikátor uzlu, na který je tato distribuce zapnutá. |
Povolení
Na SQL Serveru a spravované instanci SQL vyžaduje VIEW SERVER STATE oprávnění.
V Microsoft Fabric je pro dotazování vyžadováno členství v rolisys.dm_tran_active_transactions nebo v privilegované roli.
U služby SQL Database Basic, S0a S1 a pro databáze v elastických fondech, účet správce serveru serveru, účet správce Microsoft Entra nebo členství v roli ##MS_ServerStateReader##serveru. U všech ostatních cílů služby SQL Database se vyžaduje buď oprávnění VIEW DATABASE STATE k databázi, nebo členství v roli serveru ##MS_ServerStateReader##.
Oprávnění pro SQL Server 2022 a novější
Vyžaduje VIEW oprávnění SERVER PERFORMANCE STATE na serveru.
Poznámky
Pro označení tohoto dynamického pohledu správy z Azure Synapse Analytics 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;