sys.dm_db_file_space_usage (Transact-SQL)sys.dm_db_file_space_usage (Transact-SQL)

S’APPLIQUE À : ouiSQL Server ouiAzure SQL Database ouiAzure Synapse Analytics (SQL DW) ouiParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure Synapse Analytics (SQL DW) yesParallel Data Warehouse

Retourne des informations sur l'utilisation de l'espace pour chaque fichier de la base de données.Returns space usage information for each file in the database.

Notes

Pour l’appeler à partir de Azure Synapse Analytics (SQL DW)Azure Synapse Analytics (SQL DW) ou Parallel Data WarehouseParallel Data Warehouse, utilisez le nom sys. dm_pdw_nodes_db_file_space_usage.To call this from Azure Synapse Analytics (SQL DW)Azure Synapse Analytics (SQL DW) or Parallel Data WarehouseParallel Data Warehouse, use the name sys.dm_pdw_nodes_db_file_space_usage.

Nom de la colonneColumn name Type de donnéesData type DescriptionDescription
database_iddatabase_id smallintsmallint ID de la base de données.Database ID.
file_idfile_id smallintsmallint ID de fichier.File ID.

file_id est mappé à file_id dans sys. dm_io_virtual_file_stats et à fileid dans sys. sysfiles.file_id maps to file_id in sys.dm_io_virtual_file_stats and to fileid in sys.sysfiles.
filegroup_idfilegroup_id smallintsmallint S’applique à : SQL Server 2012 (11.x)SQL Server 2012 (11.x) et versions ultérieures.Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) and later.

ID de groupe de fichiers.Filegroup ID.
total_page_counttotal_page_count bigintbigint S’applique à : SQL Server 2012 (11.x)SQL Server 2012 (11.x) et versions ultérieures.Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) and later.

Nombre total de pages dans le fichier.Total number of pages in the file.
allocated_extent_page_countallocated_extent_page_count bigintbigint S’applique à : SQL Server 2012 (11.x)SQL Server 2012 (11.x) et versions ultérieures.Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) and later.

Nombre total de pages dans les étendues allouées du fichier.Total number of pages in the allocated extents in the file.
unallocated_extent_page_countunallocated_extent_page_count bigintbigint Nombre total de pages dans les étendues non allouées du fichier.Total number of pages in the unallocated extents in the file.

Cette valeur ne comprend pas les pages inutilisées dans les étendues allouées.Unused pages in allocated extents are not included.
version_store_reserved_page_countversion_store_reserved_page_count bigintbigint Nombre total de pages dans les étendues uniformes allouées pour le magasin de versions.Total number of pages in the uniform extents allocated for the version store. Les pages du magasin de versions ne sont jamais allouées à partir d'étendues mixtes.Version store pages are never allocated from mixed extents.

Les pages IAM ne sont pas incluses parce qu'elles sont toujours allouées à partir d'étendues mixtes.IAM pages are not included, because they are always allocated from mixed extents. Les pages PFS sont incluses si elles sont allouées à partir d'une étendue uniforme.PFS pages are included if they are allocated from a uniform extent.

Pour plus d’informations, consultez sys.dm_tran_version_store (Transact-SQL).For more information, see sys.dm_tran_version_store (Transact-SQL).
user_object_reserved_page_countuser_object_reserved_page_count bigintbigint Nombre total de pages allouées à partir d'étendues uniformes pour les objets utilisateur de la base de données.Total number of pages allocated from uniform extents for user objects in the database. Ce nombre inclut les pages non utilisées provenant d'une étendue allouée.Unused pages from an allocated extent are included in the count.

Les pages IAM ne sont pas incluses parce qu'elles sont toujours allouées à partir d'étendues mixtes.IAM pages are not included, because they are always allocated from mixed extents. Les pages PFS sont incluses si elles sont allouées à partir d'une étendue uniforme.PFS pages are included if they are allocated from a uniform extent.

Vous pouvez utiliser la total_pages colonne dans l’affichage catalogue sys. allocation_units pour retourner le nombre de pages réservées de chaque unité d’allocation dans l’objet utilisateur.You can use the total_pages column in the sys.allocation_units catalog view to return the reserved page count of each allocation unit in the user object. Notez toutefois que la colonne total_pages inclut les pages IAM.However, note that the total_pages column includes IAM pages.
internal_object_reserved_page_countinternal_object_reserved_page_count bigintbigint Nombre total de pages d'étendues uniformes allouées pour des objets internes dans le fichier.Total number of pages in uniform extents allocated for internal objects in the file. Ce nombre inclut les pages non utilisées provenant d'une étendue allouée.Unused pages from an allocated extent are included in the count.

Les pages IAM ne sont pas incluses parce qu'elles sont toujours allouées à partir d'étendues mixtes.IAM pages are not included, because they are always allocated from mixed extents. Les pages PFS sont incluses si elles sont allouées à partir d'une étendue uniforme.PFS pages are included if they are allocated from a uniform extent.

Il n'existe pas d'affichage catalogue ni d'objet de gestion dynamique qui retourne le nombre de pages de chaque objet interne.There is no catalog view or dynamic management object that returns the page count of each internal object.
mixed_extent_page_countmixed_extent_page_count bigintbigint Nombre total de pages allouées et non allouées dans les étendues mixtes allouées du fichier.Total number of allocated and unallocated pages in allocated mixed extents in the file. Les étendues mixtes contiennent des pages allouées à différents objets.Mixed extents contain pages allocated to different objects. Ce nombre comprend toutes les pages IAM du fichier.This count does include all the IAM pages in the file.
modified_extent_page_countmodified_extent_page_count bigintbigint S’applique à: SQL Server 2016 (13.x)SQL Server 2016 (13.x) SP2 et versions ultérieures.Applies to: SQL Server 2016 (13.x)SQL Server 2016 (13.x) SP2 and later.

Nombre total de pages modifiées dans les étendues allouées du fichier depuis la dernière sauvegarde complète de la base de données.Total number of pages modified in allocated extents of the file since last full database backup. Le nombre de pages modifiées peut être utilisé pour effectuer le suivi de la quantité de modifications différentielles dans la base de données depuis la dernière sauvegarde complète, afin de déterminer si une sauvegarde différentielle est nécessaire.The modified page count can be used to track amount of differential changes in the database since last full backup, to decide if differential backup is needed.
pdw_node_idpdw_node_id intint S’applique à: Azure Synapse Analytics (SQL DW)Azure Synapse Analytics (SQL DW), Parallel Data WarehouseParallel Data WarehouseApplies to: Azure Synapse Analytics (SQL DW)Azure Synapse Analytics (SQL DW), Parallel Data WarehouseParallel Data Warehouse

Identificateur du nœud sur lequel cette distribution se trouve.The identifier for the node that this distribution is on.
distribution_iddistribution_id intint S’applique à: Azure Synapse Analytics (SQL DW)Azure Synapse Analytics (SQL DW), Parallel Data WarehouseParallel Data WarehouseApplies to: Azure Synapse Analytics (SQL DW)Azure Synapse Analytics (SQL DW), Parallel Data WarehouseParallel Data Warehouse

ID numérique unique associé à la distribution.The unique numeric id associated with the distribution.

NotesRemarks

Le nombre de pages se situe toujours au niveau des étendues.Page counts are always at the extent level. Les nombres de pages sont donc toujours des multiples de huit.Therefore, page count values will always be a multiple of eight. Les étendues qui contiennent des pages d'allocation GAM (Global Allocation Map) et SGAM (Shared Global Allocation Map) sont des étendues uniformes allouées.The extents that contain Global Allocation Map (GAM) and Shared Global Allocation Map (SGAM) allocation pages are allocated uniform extents. Elles ne sont pas incluses dans les nombres de pages décrits précédemment.They are not included in the previously described page counts. Pour plus d’informations sur les pages et les étendues, consultez le Guide d’architecture des pages et des extensions.For more information about pages and extents, see Pages and Extents Architecture Guide.

Le contenu de la Banque des versions actuelle se trouve dans sys. dm_tran_version_store.The content of the current version store is in sys.dm_tran_version_store. Le suivi des pages du magasin de versions n'est pas effectué au niveau des sessions et des tâches, mais au niveau des fichiers. En effet, il s'agit de ressources globales.Version store pages are tracked at the file level instead of the session and task level, because they are global resources. Une session peut générer des versions, mais ces dernières ne peuvent pas être supprimées lorsque la session se termine.A session may generate versions, but the versions cannot be removed when the session ends. Le nettoyage du magasin de versions doit considérer la transaction la plus longue ayant besoin d'accéder à une version particulière.Version store cleanup must consider the longest running transaction that needs access to the particular version. La transaction la plus longue relative au nettoyage de la Banque des versions peut être détectée en affichant la colonne elapsed_time_seconds dans sys. dm_tran_active_snapshot_database_transactions.The longest running transaction related to version store clean-up can be discovered by viewing the elapsed_time_seconds column in sys.dm_tran_active_snapshot_database_transactions.

Des modifications fréquentes dans la colonne mixed_extent_page_count peuvent indiquer une utilisation importante de pages SGAM.Frequent changes in the mixed_extent_page_count column may indicate heavy use of SGAM pages. Le cas échéant, vous risquez d'observer un grand nombre d'attentes PAGELATCH_UP dans lesquelles la ressource d'attente est une page SGAM.When this occurs, you may see many PAGELATCH_UP waits in which the wait resource is an SGAM page. Pour plus d’informations, consultez sys. (dm_os_waiting_tasks Transact-)SQL, sys. (dm_os_wait_stats Transact-)SQLet sys. dm_os_latch_stats (Transact-SQL).For more information, see sys.dm_os_waiting_tasks (Transact-SQL), sys.dm_os_wait_stats (Transact-SQL), and sys.dm_os_latch_stats (Transact-SQL).

Objets utilisateurUser Objects

Les objets suivants sont compris dans les compteurs de pages des objets utilisateurs :The following objects are included in the user object page counters:

  • les tables et les index définis par l'utilisateur ;User-defined tables and indexes

  • les tables et les index système ;System tables and indexes

  • les tables temporaires globales et les index ;Global temporary tables and indexes

  • les tables temporaires locales et les index ;Local temporary tables and indexes

  • les variables de tables ;Table variables

  • les tables renvoyées dans les fonctions table.Tables returned in the table-valued functions

Objets internesInternal Objects

Les objets internes se trouvent uniquement dans tempdb.Internal objects are only in tempdb. Les objets suivants sont compris dans les compteurs de pages des objets internes :The following objects are included in the internal object page counters:

  • les tables de travail des opérations de curseur ou de mise en attente et le stockage temporaire d'objets LOB ;Work tables for cursor or spool operations and temporary large object (LOB) storage

  • les fichiers de travail des opérations telles que les jointures de hachage ;Work files for operations such as a hash join

  • TrisSort runs

Cardinalités de la relationRelationship Cardinalities

DeFrom PourTo RelationRelationship
sys.dm_db_file_space_usage.database_id, file_idsys.dm_db_file_space_usage.database_id, file_id sys.dm_io_virtual_file_stats.database_id, file_idsys.dm_io_virtual_file_stats.database_id, file_id Un à unOne-to-one

AutorisationsPermissions

Sur SQL ServerSQL Server, requiert VIEW SERVER STATE autorisation.On SQL ServerSQL Server, requires VIEW SERVER STATE permission.
Sur les niveaux SQL DatabaseSQL Database Premium, requiert l’autorisation VIEW DATABASE STATE dans la base de données.On SQL DatabaseSQL Database Premium Tiers, requires the VIEW DATABASE STATE permission in the database. Sur SQL DatabaseSQL Database niveaux standard et de base, nécessite l' administrateur du serveur ou un compte d' administrateur Azure Active Directory .On SQL DatabaseSQL Database Standard and Basic Tiers, requires the Server admin or an Azure Active Directory admin account.

ExemplesExamples

Détermination de la quantité d'espace disponible dans tempdbDeterming the Amount of Free Space in tempdb

La requête suivante renvoie le nombre total de pages disponibles et l’espace disponible total en mégaoctets (Mo) disponibles dans tous les fichiers de tempdb.The following query returns the total number of free pages and total free space in megabytes (MB) available in all files in tempdb.

USE tempdb;  
GO  
SELECT SUM(unallocated_extent_page_count) AS [free pages],   
(SUM(unallocated_extent_page_count)*1.0/128) AS [free space in MB]  
FROM sys.dm_db_file_space_usage;  

Détermination de la quantité d'espace utilisée par les objets utilisateurDetermining the Amount of Space Used by User Objects

La requête ci-dessous retourne le nombre total de pages utilisées par les objets utilisateur et l'espace total en Mo utilisé par les objets utilisateur dans tempdb.The following query returns the total number of pages used by user objects and the total space used by user objects in tempdb.

USE tempdb;  
GO  
SELECT SUM(user_object_reserved_page_count) AS [user object pages used],  
(SUM(user_object_reserved_page_count)*1.0/128) AS [user object space in MB]  
FROM sys.dm_db_file_space_usage;

Voir aussiSee Also

Fonctions et vues de gestion dynamique (Transact-SQL) Dynamic Management Views and Functions (Transact-SQL)
Vues (de gestion dynamique liées aux bases de) données Transact-SQL Database Related Dynamic Management Views (Transact-SQL)
sys.dm_db_task_space_usage (Transact-SQL) sys.dm_db_task_space_usage (Transact-SQL)
sys.dm_db_session_space_usage (Transact-SQL)sys.dm_db_session_space_usage (Transact-SQL)