sys.dm_tran_top_version_generators (Transact-SQL)

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

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’enregistrement agrégées regroupées par les database_id et les rowset_id. sys.dm_tran_top_version_generators récupère des données en interrogeant la table virtuelle dm_tran_version_store. sys.dm_tran_top_version_generators est une vue inefficace à exécuter, car cette vue interroge le magasin de versions et le magasin de versions peut être très volumineux. Nous vous recommandons d'utiliser cette fonction pour rechercher les clients les plus volumineux de la banque des versions.

Remarque

Pour l’appeler à partir d’Azure Synapse Analytics ou d’Analytics Platform System (PDW), utilisez le nom sys.dm_pdw_nodes_tran_top_version_generators. Cette syntaxe n’est pas prise en charge par le pool SQL serverless dans Azure Synapse Analytics.

Syntaxe

  
sys.dm_tran_top_version_generators  

Table retournée

Nom de la colonne Type de données Description
database_id int ID de la base de données.

Dans Azure SQL Database, les valeurs sont uniques au sein d’une base de données unique ou d’un pool élastique, mais pas dans un serveur logique.
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 le magasin de versions.
pdw_node_id int S’applique à : Azure Synapse Analytics, Analytics Platform System (PDW)

Identificateur du nœud sur lequel cette distribution est activée.

Autorisations

Sur SQL Server et SQL Managed Instance, l’autorisation VIEW SERVER STATE est requise.

Sur les objectifs de service SQL Database Basic, S0 et S1, et pour les bases de données dans des pools élastiques, le compte d’administrateur du serveur, le compte d’administrateur Microsoft Entra ou l’appartenance au ##MS_ServerStateReader##rôle serveur est requis. Sur tous les autres objectifs de service SQL Database, l’autorisation VIEW DATABASE STATE sur la base de données ou l’appartenance au rôle serveur ##MS_ServerStateReader## est requise.

Autorisations pour SQL Server 2022 (et versions plus récentes)

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

Notes

Étant donné que sys.dm_tran_top_version_generators devrez peut-être lire de nombreuses pages au fur et à mesure qu’elle analyse l’intégralité du magasin de versions, l’exécution de sys.dm_tran_top_version_generators peut interférer avec les 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 le jeu de résultats obtenu.

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

La sortie indique que toutes les versions sont créées database_id``9 et que les versions génèrent à partir de deux tables.

Voir aussi

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