sys.dm_tran_top_version_generators (Transact-SQL)

Retourne une table virtuelle pour les objets qui produisent les versions les plus nombreuses dans la banque des versions. sys.dm_tran_top_version_generators retourne les 256 premières longueurs d'enregistrements agrégés regroupés 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. L'exécution de la vue 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 renvoyée

Nom de la 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 de capture instantanée.

  • 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_id9 et que les versions sont générées à partir de deux tables.