sys.dm_tran_current_snapshot (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 virtuell tabell som visar alla aktiva transaktioner vid tidpunkten då den aktuella snapshot-transaktionen startar. Om den aktuella transaktionen inte är en ögonblickskopia returnerar denna funktion inga rader. sys.dm_tran_current_snapshot liknar sys.dm_tran_transactions_snapshot, förutom att sys.dm_tran_current_snapshot endast returnerar de aktiva transaktionerna för den aktuella snapshot-transaktionen.

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_snapshot. Den här syntaxen stöds inte av en serverlös SQL-pool i Azure Synapse Analytics.

Syntax

  
sys.dm_tran_current_snapshot  

Tabell returnerad

Kolumnnamn Datatyp Description
transaction_sequence_num bigint Transaktionssekvensnummer för den aktiva transaktionen.
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 XSN-59.

SELECT   
    transaction_sequence_num  
  FROM sys.dm_tran_current_snapshot;  

Här är resultatet.

transaction_sequence_num  
------------------------  
57  
58  

Resultaten visar att XSN-57 och XSN-58 var aktiva när snapshot-transaktionen XSN-59 startade. Samma resultat kvarstår, även efter att XSN-57 och XSN-58 committat eller rullat tillbaka, tills snapshot-transaktionen är klar.

Samma fråga utförs inom ramen för XSN-60.

Här är resultatet.

transaction_sequence_num  
------------------------  
57  
58  
59  

Utdata för XSN-60 inkluderar samma transaktioner som visas för XSN-59, men inkluderar även XSN-59, som var aktiv när XSN-60 startade.

Se även

Vyer och funktioner för dynamisk hantering (Transact-SQL)
Transaktionsrelaterade dynamiska hanteringsvyer och funktioner (Transact-SQL)