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


sys.dm_tran_current_transaction (Transact-SQL)

Vonatkozik a következőkre:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalitikai Platform System (PDW)SQL adatbázis a Microsoft Fabric-ben

Egyetlen sort ad vissza, amely a tranzakció állapotinformációit mutatja az aktuális ülésen.

Megjegyzés:

Ezt Azure Synapse Analytics vagy Analytics Platform System (PDW) néven lehet használni sys.dm_pdw_nodes_tran_current_transaction. Ezt a szintaxist az Azure Synapse Analytics kiszolgáló nélküli SQL-készlete nem támogatja.

Szemantika

  
sys.dm_tran_current_transaction  

Visszaadott tábla

Oszlop név Adattípus Description
transaction_id bigint A jelenlegi pillanatkép tranzakcióazonosítója.
transaction_sequence_num bigint A tranzakció sorszáma, amely a rekordverziót generálja.
transaction_is_snapshot bit Snapshot izolációs állapot. Ez az érték 1, ha a tranzakciót snapshot izoláció alatt indítják. Ellenkező esetben az érték 0.
first_snapshot_sequence_num bigint A legalacsonyabb tranzakciósorozat száma, amelyek aktív voltak a pillanatkép készítésekor történtek. Végrehajtáskor egy snapshot tranzakció az adott időben az összes aktív tranzakció pillanatképét veszi. Nem snapshot tranzakciók esetén ez az oszlop 0-t mutat.
last_transaction_sequence_num bigint Globális sorozatszám. Ez az érték a rendszer által generált utolsó tranzakciósorozat számot jelenti.
first_useful_sequence_num bigint Globális sorozatszám. Ez az érték a tranzakció legrégebbi tranzakciósorozat számát jelenti, amelynek sorverziói vannak, amelyeket meg kell őrizni a verzió tárolójában. A korábbi tranzakciók által létrehozott sorverziók eltávolíthatók.
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.

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.

Példák

A következő példa egy teszthelyzetet használ, amelyben négy egyidejű tranzakció, mindegyiket egy tranzakciósorozat számmal (XSN) azonosítva, egy olyan adatbázisban fut, amelynek ALLOW_SNAPSHOT_ISOLATION és READ_COMMITTED_SNAPSHOT opciói ON-ra vannak állítva. A következő tranzakciók zajlanak:

  • Az XSN-57 egy frissítő művelet, amely sorozatos izolációval rendelkezik.

  • Az XSN-58 ugyanaz, mint az XSN-57.

  • Az XSN-59 egy kiválasztott művelet snapshot izoláció alatt.

  • Az XSN-60 ugyanaz, mint az XSN-59.

A következő lekérdezést minden tranzakció hatókörén belül hajtják végre.

SELECT   
    transaction_id  
   ,transaction_sequence_num  
   ,transaction_is_snapshot  
   ,first_snapshot_sequence_num  
   ,last_transaction_sequence_num  
   ,first_useful_sequence_num  
  FROM sys.dm_tran_current_transaction;  

Íme az XSN-59 eredménye.

transaction_id       transaction_sequence_num transaction_is_snapshot  
-------------------- ------------------------ -----------------------  
9387                 59                       1                         
  
first_snapshot_sequence_num last_transaction_sequence_num  
--------------------------- -----------------------------  
57                               61                        
  
first_useful_sequence_num  
-------------------------  
57  

A kimenet azt mutatja, hogy az XSN-59 egy pillanatkép tranzakció, amely az XSN-57-et használja az első aktív tranzakcióként, amikor az XSN-59 elindult. Ez azt jelenti, hogy az XSN-59 olyan tranzakciók által elkötelezett adatokat olvas, amelyek tranzakciószáma alacsonyabb az XSN-57-nél.

Íme az XSN-57 eredménye.

transaction_id       transaction_sequence_num transaction_is_snapshot  
-------------------- ------------------------ -----------------------  
9295                 57                       0  
  
first_snapshot_sequence_num last_transaction_sequence_num  
--------------------------- -----------------------------  
NULL                        61  
  
first_useful_sequence_num  
-------------------------  
57  

Mivel az XSN-57 nem egy pillanatkép tranzakció, first_snapshot_sequence_num az NULL.

Lásd még:

Dinamikus felügyeleti nézetek és függvények (Transact-SQL)
tranzakcióval kapcsolatos dinamikus felügyeleti nézetek és függvények (Transact-SQL)