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.