sys.dm_tran_version_store_space_usage (Transact-SQL)

S’applique à : SQL Server 2016 (13.x) SP 2 et versions ultérieures Base de données Azure SQL Non pris en charge. Azure Synapse Analytics Non pris en charge. Analytics Platform System (PDW)

Retourne une table qui affiche l’espace total dans tempdb utilisé par les enregistrements de magasin de versions pour chaque base de données. sys.dm_tran_version_store_space_usage est efficace et n’est pas coûteux à exécuter, car il ne navigue pas dans les enregistrements de magasin de versions individuels et retourne l’espace de stockage de versions agrégé consommé dans tempdb par base de données.

Chaque enregistrement avec version est stocké sous forme de données binaires, ainsi que des informations de suivi ou d’état. À l'instar des enregistrements des tables de la base de données, ceux de la banque des versions sont stockés dans des pages de 8 192 octets. Si un enregistrement excède ces 8 192 octets, il est réparti sur deux enregistrements.

Comme l'enregistrement avec contrôle de version est stocké sous forme binaire, cela ne pose pas de problème avec les différents classements des différentes bases de données. Utilisez sys.dm_tran_version_store_space_usage pour surveiller et planifier la taille tempdb en fonction de l’utilisation de l’espace de stockage des versions des bases de données dans une instance SQL Server.

Nom de la colonne Type de données Description
database_id int ID de base de données 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.
reserved_page_count bigint Nombre total de pages réservées dans tempdb pour les enregistrements de magasin de versions de la base de données.
reserved_space_kb bigint Espace total utilisé en kilo-octets dans tempdb pour les enregistrements de magasin de versions de la base de données.

autorisations

Sur SQL Server, nécessite l’autorisation VIEW SERVER STATE.

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

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

Exemples

La requête suivante peut être utilisée pour déterminer l’espace consommé dans tempdb, par magasin de versions de chaque base de données dans une instance SQL Server.

SELECT 
  DB_NAME(database_id) as 'Database Name',
  reserved_page_count,
  reserved_space_kb 
FROM sys.dm_tran_version_store_space_usage;  

Voici le jeu de résultats.

Database Name            reserved_page_count reserved_space_kb  
------------------------ -------------------- -----------  
msdb                      0                    0             
AdventureWorks2022        10                   80             
AdventureWorks2022DW      0                    0             
WideWorldImporters        20                   160             

Voir aussi

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