Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL-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)