Megosztás a következőn keresztül:


sys.dm_tran_active_transactions (Transact-SQL)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példányAzure Synapse AnalyticsElemzési platformrendszer (PDW)SQL Analytics-végpont a Microsoft FabricbenRaktár a Microsoft FabricbenSQL-adatbázis a Microsoft Fabricben

A sys.dm_tran_active_transactions dinamikus menedzsment nézet visszaadja az instance tranzakcióiról szóló információkat.

Az oszlop neve Adattípus Description
transaction_id bigint A tranzakció azonosítója az instance szinten, nem az adatbázis szintjén. Ez csak az összes adatbázisban egyedi, de nem minden szerver példányban egyedi.
name nvarchar(32) Tranzakció neve. Ez felülíródik, ha a tranzakció megjelölve van, és a megjelölt név helyettesíti a tranzakció nevét.
transaction_begin_time datetime Az az idő, amikor a tranzakció elkezdődött.
transaction_type int A tranzakció típusa.

1 = Olvasási/írási tranzakció

2 = Csak olvasható tranzakció

3 = Rendszertranzakció

4 = Elosztott tranzakció
transaction_uow uniqueidentifier Tranzakciós egység (UOW) azonosítója elosztott tranzakciókhoz. A Microsoft elosztott tranzakciókoordinátora (MS DTC) az UOW azonosítót használja az elosztott tranzakció kezelésére.
transaction_state int 0 = A tranzakciót még nem inicializálták teljesen.

1 = A tranzakció inicializálódott, de nem indult el.

2 = A tranzakció aktív.

3 = A tranzakció véget ért. Csak olvasható tranzakciókhoz használják.

4 = A commitási folyamat elindult az elosztott tranzakción. Csak elosztott tranzakciókhoz. A elosztott tranzakció továbbra is aktív, de további feldolgozás nem valósult meg.

5 = A tranzakció előkészített állapotban van, és vár a megoldásra.

6 = A tranzakció elkötelezett.

7 = A tranzakciót visszafordítják.

8 = A tranzakciót vissza kellett fordítani.
transaction_status int Csak tájékoztatási célokra van meghatározva. Nem támogatott. A jövőbeli kompatibilitás nem garantált.
transaction_status2 int Csak tájékoztatási célokra van meghatározva. Nem támogatott. A jövőbeli kompatibilitás nem garantált.
dtc_state int Az Azure SQL Databasevonatkozik.

1 = AKTÍV

2 = ELŐKÉSZÍTVE

3 = ELKÖTELEZETT

4 = ELZÁRT

5 = VISSZANYERT
dtc_status int Csak tájékoztatási célokra van meghatározva. Nem támogatott. A jövőbeli kompatibilitás nem garantált.
dtc_isolation_level int Csak tájékoztatási célokra van meghatározva. Nem támogatott. A jövőbeli kompatibilitás nem garantált.
filestream_transaction_id varbinary(128) Az Azure SQL Databasevonatkozik.

Csak tájékoztatási célokra van meghatározva. Nem támogatott. A jövőbeli kompatibilitás nem garantált.
pdw_node_id int A következővonatkozik: Azure Synapse Analytics, Analytics Platform System (PDW)

Annak a csomópontnak az azonosítója, amelyen ez a disztribúció található.

Permissions

Az SQL Serveren és a felügyelt SQL-példányon VIEW SERVER STATE engedély szükséges.

A Microsoft Fabricben a Contributorworkspace szerepben vagy a nagyobb jogosultsággal rendelkező szerepben tagság szükséges a sys.dm_tran_active_transactionslekérdezéshez.

Az SQL Database Alapszintű, S0és S1 szolgáltatás célkitűzésein, valamint rugalmas készletekbenlévő adatbázisok esetében a kiszolgálói rendszergazdai fiókra, a Microsoft Entra rendszergazdai fiókra vagy a ##MS_ServerStateReader##kiszolgálói szerepkör tagságára van szükség. Az SQL Database szolgáltatás minden más célkitűzéséhez vagy az adatbázis VIEW DATABASE STATE engedélyére, vagy a ##MS_ServerStateReader## kiszolgálói szerepkör tagságára van szükség.

Engedélyek az SQL Server 2022-hez és újabb verziókhoz

A KISZOLGÁLÓ TELJESÍTMÉNYÁLLAPOTÁNAK MEGTEKINTÉSE engedélyre van szükség a kiszolgálón.

Megjegyzések

Az Azure Synapse Analytics vagy Analytics Platform System (PDW) dinamikus menedzsment nézetének elnevezéséhez használjuk a következő nevet sys.dm_pdw_nodes_tran_active_transactions : Ez a szintaxis nem támogatott szerver nélküli SQL pool az Azure Synapse Analytics-ben.

Példák

A. Használd sys.dm_tran_active_transactions más DMV-kkel együtt az aktív tranzakciók információinak megtalálásához

A következő példa mutatja a rendszeren található aktív tranzakciókat. A lekérdezés részletes információkat nyújt a tranzakcióról, a felhasználói munkamenetről, a beküldött alkalmazásról, a megindító lekérdezésről és sok más tényezőről.

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;