sys.dm_tran_top_version_generators (Transact-SQL)
S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics 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 la base de données Azure SQL, 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 les pools élastiques, le compte d’administration du serveur, le compte d’administration Microsoft Entra ou l’appartenance dans ##MS_ServerStateReader##
au rôle de 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.
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)