Delen via


sys.dm_tran_transactions_snapshot (Transact-SQL)

van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-database in Microsoft Fabric

Geeft een virtuele tabel terug voor de sequence_number transacties die actief zijn wanneer elke snapshottransactie begint. De informatie die door deze weergave wordt teruggegeven kan u helpen bij het volgende:

  • Vind het aantal momenteel actieve snapshottransacties.

  • Identificeer datawijzigingen die worden genegeerd door een bepaalde snapshot-transactie. Voor een transactie die actief is wanneer een snapshottransactie begint, worden alle datawijzigingen door die transactie, zelfs nadat die transactie is gecommot, genegeerd door de snapshot-transactie.

Overweeg bijvoorbeeld de volgende output van sys.dm_tran_transactions_snapshot:

transaction_sequence_num snapshot_id snapshot_sequence_num  
------------------------ ----------- ---------------------  
59                       0           57  
59                       0           58  
60                       0           57  
60                       0           58  
60                       0           59  
60                       3           57  
60                       3           58  
60                       3           59  
60                       3           60  

De transaction_sequence_num kolom identificeert het transactiesequentienummer (XSN) van de huidige snapshot-transacties. De output toont er twee: 59 en 60. De snapshot_sequence_num kolom identificeert het transactiesequentienummer van de transacties die actief zijn wanneer elke snapshottransactie begint.

De output toont dat snapshottransactie XSN-59 start terwijl twee actieve transacties, XSN-57 en XSN-58, draaien. Als XSN-57 of XSN-58 datawijzigingen aanbrengt, negeert XSN-59 de wijzigingen en gebruikt rijversiebeheer om een transactioneel consistent beeld van de database te behouden.

Snapshottransactie XSN-60 negeert datawijzigingen die door XSN-57 en XSN-58 zijn aangebracht, evenals XSN 59.

Tabel geretourneerd

Kolomnaam Gegevenstype Description
transaction_sequence_num bigint Transactiesequentienummer (XSN) van een snapshot-transactie.
snapshot_id int Snapshot-ID voor elke Transact-SQL-instructie begon onder read-committed met behulp van rijversiebeheersing. Deze waarde wordt gebruikt om een transactioneel consistente weergave te genereren van de database die elke query ondersteunt die wordt uitgevoerd onder read-committed met behulp van rijversiebeheersing.
snapshot_sequence_num bigint Transactiesequentienummer van een transactie die actief was toen de snapshottransactie begon.

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.

Opmerkingen

Wanneer een snapshottransactie begint, registreert de Database Engine alle transacties die op dat moment actief zijn. sys.dm_tran_transactions_snapshot rapporteert deze informatie voor alle momenteel actieve snapshottransacties.

Elke transactie wordt geïdentificeerd door een transactiesequentienummer dat wordt toegewezen wanneer de transactie begint. Transacties beginnen op het moment dat een BEGIN TRANSACTIE of BEGIN WORK statement wordt uitgevoerd. De Database Engine wijst echter het transactiesequentienummer toe met de uitvoering van de eerste Transact-SQL-instructie die data raadpleegt na de BEGIN TRANSACTION- of BEGIN WORK-instructie. De transactiesequentienummers worden met één verhoogd.

Zie ook

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