Share via


sys.dm_tran_current_snapshot (Transact-SQL)

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform Systeem (PDW)SQL-database in Microsoft Fabric

Geeft een virtuele tabel terug die alle actieve transacties toont op het moment dat de huidige snapshottransactie begint. Als de huidige transactie geen snapshot-transactie is, geeft deze functie geen rijen terug. sys.dm_tran_current_snapshot lijkt op sys.dm_tran_transactions_snapshot, behalve dat sys.dm_tran_current_snapshot alleen de actieve transacties voor de huidige snapshottransactie teruggeeft.

Opmerking

Om dit aan te roepen vanuit Azure Synapse Analytics of Analytics Platform System (PDW), gebruik de naam sys.dm_pdw_nodes_tran_current_snapshot. Deze syntaxis wordt niet ondersteund door een serverloze SQL-pool in Azure Synapse Analytics.

Syntaxis

  
sys.dm_tran_current_snapshot  

Tabel geretourneerd

Kolomnaam Gegevenstype Description
transaction_sequence_num bigint Transactiesequentienummer van de actieve transactie.
pdw_node_id int van toepassing op: Azure Synapse Analytics, Analytics Platform System (PDW)

De id voor het knooppunt waarop deze distributie zich bevindt.

Permissions

Voor SQL Server en SQL Managed Instance is een machtiging vereist VIEW SERVER STATE .

Voor servicedoelstellingen van SQL Database Basic, S0 en S1 en voor databases in elastische pools is het serverbeheerdersaccount , het Microsoft Entra-beheerdersaccount of het lidmaatschap van de ##MS_ServerStateReader##serverrol vereist. Voor alle andere SQL Database-servicedoelstellingen is de VIEW DATABASE STATE machtiging voor de database of het lidmaatschap van de ##MS_ServerStateReader## serverfunctie vereist.

Machtigingen voor SQL Server 2022 en hoger

Vereist de machtiging PRESTATIESTATUS VAN DE WEERGAVESERVER op de server.

Voorbeelden

Het volgende voorbeeld gebruikt een testscenario waarin vier gelijktijdige transacties, elk geïdentificeerd door een transactiesequentienummer (XSN), draaien in een database met de ALLOW_SNAPSHOT_ISOLATION en READ_COMMITTED_SNAPSHOT opties op ON. De volgende transacties draaien:

  • XSN-57 is een update-operatie onder serialiseerbare isolatie.

  • XSN-58 is hetzelfde als XSN-57.

  • XSN-59 is een select-operatie onder snapshot-isolatie.

  • XSN-60 is hetzelfde als XSN-59.

De volgende query wordt uitgevoerd binnen de scope van XSN-59.

SELECT   
    transaction_sequence_num  
  FROM sys.dm_tran_current_snapshot;  

Hier is het resultatenoverzicht.

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

De resultaten tonen aan dat XSN-57 en XSN-58 actief waren op het moment dat de snapshottransactie XSN-59 begon. Ditzelfde resultaat blijft bestaan, zelfs nadat XSN-57 en XSN-58 zijn commit of teruggerold, totdat de snapshottransactie is afgerond.

Dezelfde query wordt uitgevoerd binnen de scope van XSN-60.

Hier is het resultatenoverzicht.

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

De output voor XSN-60 bevat dezelfde transacties als voor XSN-59, maar omvat ook XSN-59, dat actief was toen XSN-60 begon.

Zie ook

dynamische beheerweergaven en -functies (Transact-SQL)
Transactiegerelateerde dynamische beheerweergaven en -functies (Transact-SQL)