sys.dm_tran_current_transaction (Transact-SQL)

gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL-databas i Microsoft Fabric

Returnerar en enda rad som visar statusinformationen för transaktionen i den aktuella sessionen.

Anmärkning

För att kalla detta från Azure Synapse Analytics eller Analytics Platform System (PDW), använd namnet sys.dm_pdw_nodes_tran_current_transaction. Den här syntaxen stöds inte av en serverlös SQL-pool i Azure Synapse Analytics.

Syntax

  
sys.dm_tran_current_transaction  

Tabell returnerad

Kolumnnamn Datatyp Description
transaction_id bigint Transaktions-ID för den aktuella snapshoten.
transaction_sequence_num bigint Sekvensnummer för transaktionen som genererar postversionen.
transaction_is_snapshot bit Ögonblicksbild av isoleringstillstånd. Detta värde är 1 om transaktionen startas under snapshot-isolering. Annars är värdet 0.
first_snapshot_sequence_num bigint Lägsta transaktionssekvensnummer för de transaktioner som var aktiva när en ögonblicksbild togs. Vid exekvering tar en ögonblicksbild av en ögonblicksbild av alla aktiva transaktioner vid den tidpunkten. För icke-snapshot-transaktioner visar denna kolumn 0.
last_transaction_sequence_num bigint Globalt sekvensnummer. Detta värde representerar det senaste transaktionssekvensnumret som genererades av systemet.
first_useful_sequence_num bigint Globalt sekvensnummer. Detta värde representerar det äldsta transaktionssekvensnumret för transaktionen som har radversioner som måste behållas i versionslagret. Radversioner som skapats genom tidigare transaktioner kan tas bort.
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 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.

Examples

Följande exempel använder ett testscenario där fyra samtidiga transaktioner, var och en identifierad med ett transaktionssekvensnummer (XSN), körs i en databas där ALLOW_SNAPSHOT_ISOLATION och READ_COMMITTED_SNAPSHOT alternativen är inställda på ON. Följande transaktioner körs:

  • XSN-57 är en uppdateringsoperation under serialiserbar isolering.

  • XSN-58 är samma som XSN-57.

  • XSN-59 är en select-operation under snapshot-isolering.

  • XSN-60 är samma som XSN-59.

Följande fråga utförs inom ramen för varje transaktion.

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;  

Här är resultatet för XSN-59.

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  

Resultatet visar att XSN-59 är en ögonblickskopia som använder XSN-57 som den första transaktionen som var aktiv när XSN-59 startade. Detta innebär att XSN-59 läser data som genomförs av transaktioner med ett transaktionssekvensnummer lägre än XSN-57.

Här är resultatet för XSN-57.

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  

Eftersom XSN-57 inte är en ögonblickskopia, first_snapshot_sequence_num är NULL.

Se även

Dynamiska hanteringsvyer och funktioner (Transact-SQL)
transaktionsrelaterade dynamiska hanteringsvyer och funktioner (Transact-SQL)