sys.dm_tran_transactions_snapshot (Transact-SQL)

Retourne une table virtuelle pour les numéros de séquence des transactions qui sont actives au démarrage de chaque transaction d'instantané. Les informations retournées par cette vue peuvent vous être utiles pour les opérations suivantes :

  • Rechercher le nombre de transactions d'instantané actives.

  • Identifier les modifications de données qui sont ignorées par une transaction d'instantané spécifique. Pour une transaction qui est active lorsqu'une transaction d'instantané démarre, toutes les modifications de données effectuées par cette transaction (même après sa validation) sont ignorées par la transaction d'instantané.

Prenons par exemple le résultat suivant de 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

La colonne transaction_sequence_num identifie le numéro de séquence de transaction (XSN) des transactions d'instantané actives. Le résultat indique deux valeurs : 59 et 60. La colonne snapshot_sequence_num identifie le numéro de séquence des transactions qui sont actives au moment où chaque transaction d'instantané démarre.

Le résultat indique que la transaction d'instantané XSN-59 démarre alors que deux transactions actives, XSN-57 et XSN-58, sont en cours d'exécution. Si XSN-57 ou XSN-58 effectue des modifications de données, XSN-59 ignore les changements et utilise le contrôle de version de ligne pour assurer une vue cohérente, d'un point de vue transactionnel, de la base de données.

La transaction d'instantané XSN-60 ignore les modifications de données apportées par XSN-57, XSN-58 et également XSN 59.

Syntaxe

dm_tran_transactions_snapshot

Table retournée

Nom de colonne

Type de données

Description

transaction_sequence_num

bigint

Numéro de séquence (XSN) d'une transaction d'instantané.

snapshot_id

int

Identificateur d'instantané pour chaque instruction Transact-SQL lancée en mode de lecture validée à l'aide du contrôle de version de ligne. Cette valeur permet de générer une vue cohérente, d'un point de vue transactionnel, de la base de données prenant en charge chaque requête qui est exécutée en mode de lecture validée à l'aide du contrôle de version de ligne.

snapshot_sequence_num

bigint

Numéro de séquence d'une transaction qui était active lorsque la transaction d'instantané a commencé.

Autorisations

L'autorisation VIEW SERVER STATE est nécessaire sur le serveur.

Notes

Lorsqu'une transaction d'instantané démarre, le Moteur de base de données enregistre toutes les transactions qui sont actives à ce moment précis. sys.dm_tran_transactions_snapshot fournit ces informations pour toutes les transactions d'instantané actuellement actives.

Chaque transaction est identifiée par un numéro de séquence qui lui est affecté au moment où elle commence. Les transactions commencent au moment où une instruction BEGIN TRANSACTION ou BEGIN WORK est exécutée. Toutefois, le moteur de base de données n'attribue le numéro de séquence de la transaction que lors de l'exécution de la première instruction Transact-SQL qui accède aux données suite à l'instruction BEGIN TRANSACTION ou BEGIN WORK. Les numéros de séquence des transactions sont incrémentés d'une unité à la fois.

Voir aussi

Référence

Fonctions et vues de gestion dynamique (Transact-SQL)

Fonctions et vues de gestion dynamique relatives aux transactions (Transact-SQL)