sys.dm_tran_top_version_generators (Transact-SQL)

Renvoie une table virtuelle pour les objets qui génèrent la majorité des versions d'un magasin de versions. sys.dm_tran_top_version_generators retourne les 256 premières longueurs d'enregistrements agrégés regroupées par database_id et rowset_id. sys.dm_tran_top_version_generators extrait les données en lançant une requête dans la table virtuelle dm_tran_version_store. sys.dm_tran_top_version_generators n'est pas efficace, car cette vue interroge la banque des versions, et cette dernière peut être très volumineuse. Nous vous recommandons d'utiliser cette fonction pour rechercher les clients les plus volumineux de la banque des versions.

Syntaxe

sys.dm_tran_top_version_generators

Table retournée

Nom de colonne

Type de données

Description

database_id

int

ID de la base de données.

rowset_id

bigint

ID de l'ensemble de lignes.

aggregated_record_length_in_bytes

int

Somme des longueurs des enregistrements pour chaque paire database_id et rowset_id dans la banque des versions.

Autorisations

Nécessite l'autorisation VIEW SERVER STATE sur le serveur.

Notes

Du fait que sys.dm_tran_top_version_generators peut devoir lire de nombreuses pages lors de l'analyse de l'intégralité de la banque des versions, l'exécution de sys.dm_tran_top_version_generators peut nuire aux performances du système.

Exemples

L'exemple suivant illustre un scénario de test dans lequel quatre transactions simultanées, chacune étant identifiée par un numéro de séquence de transaction, sont exécutées dans une base de données où les options ALLOW_SNAPSHOT_ISOLATION et READ_COMMITTED_SNAPSHOT sont définies à ON. Les transactions suivantes sont exécutées :

  • XSN-57 est une opération Update exécutée avec le niveau d'isolement sérialisable.

  • XSN-58 est identique à XSN-57.

  • XSN-59 est une opération Select exécutée avec le niveau d'isolement d'instantané.

  • XSN-60 est identique à XSN-59.

La requête suivante est exécutée :

SELECT
    database_id,
    rowset_id,
    aggregated_record_length_in_bytes
  FROM sys.dm_tran_top_version_generators;

Voici l'ensemble des résultats.

database_id rowset_id            aggregated_record_length_in_bytes
----------- -------------------- ---------------------------------
9           72057594038321152    87
9           72057594038386688    33

Le résultat indique que toutes les versions sont créées par database_id 9 et que les versions sont générées à partir de deux tables.

Voir aussi

Référence

Fonctions et vues de gestion dynamique (Transact-SQL)

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