Partage via


sys.dm_os_volume_stats (Transact-SQL)

S'applique à :SQL Server

Retourne des informations sur le volume du système d’exploitation (répertoire) sur lequel les bases de données et fichiers spécifiés sont stockés dans SQL Server. Utilisez cette fonction de gestion dynamique pour vérifier les attributs du lecteur de disque physique ou retourner les informations relatives à l'espace disque disponible pour le répertoire.

Conventions de la syntaxe Transact-SQL

Syntaxe

sys.dm_os_volume_stats (database_id , file_id)

Arguments

database_id

ID de la base de données. database_id est de type int, sans valeur par défaut. Ne peut pas être NULL.

file_id

ID du fichier. file_id est int, sans valeur par défaut. Ne peut pas être NULL.

Table retournée

Colonne Type de données Description
database_id int ID de la base de données. Non nullable.
file_id int ID du fichier. Non nullable.
volume_mount_point nvarchar(512) Point de montage à la racine duquel le volume est attaché. Peut retourner une chaîne vide. Retourne null sur Linux.
volume_id nvarchar(512) Identificateur du volume du système d'exploitation. Peut retourner une chaîne vide. Retourne null sur Linux.
logical_volume_name nvarchar(512) Nom du volume logique. Peut retourner une chaîne vide. Retourne null sur Linux.
file_system_type nvarchar(512) Type du volume du système de fichiers (par exemple, NTFS, FAT, RAW). Peut retourner une chaîne vide. Retourne null sur Linux.
total_bytes bigint Taille totale (en octets) du volume. Non nullable.
available_bytes bigint Espace disponible sur le volume. Non nullable.
supports_compression tinyint Indique si le volume prend en charge la compression du système d'exploitation. Non nullable sur Windows et retourne null sur Linux.
supports_alternate_streams tinyint Indique si le volume prend en charge les flux de remplacement. Non nullable sur Windows et retourne null sur Linux.
supports_sparse_files tinyint Indique si le volume prend en charge les fichiers partiellement alloués. Non nullable sur Windows et retourne null sur Linux.
is_read_only tinyint Indique si le volume est actuellement marqué comme étant en lecture seule. Non nullable.
is_compressed tinyint Indique si ce volume est actuellement compressé. Non nullable sur Windows et retourne null sur Linux.
incurs_seek_penalty tinyint Indique le type de stockage prenant en charge ce volume. Les valeurs possibles sont les suivantes :

0: Aucune pénalité de recherche sur ce volume, généralement lorsque l’appareil de stockage est PMM ou SSD

1: recherchez une pénalité sur ce volume, généralement lorsque l’appareil de stockage est HDD

2: le type de stockage ne peut pas être déterminé lorsque le volume se trouve sur un chemin UNC ou des partages montés

NULL: le type de stockage ne peut pas être déterminé sur le système d’exploitation Linux

s’applique à : SQL Server 2019 (15.x) et versions ultérieures

autorisations

SQL Server 2019 (15.x) et les versions antérieures nécessitent VIEW SERVER STATE autorisation sur le serveur.

SQL Server 2022 (16.x) et versions ultérieures nécessitent VIEW SERVER PERFORMANCE STATE autorisation sur le serveur.

Exemples

R. Retour de l'espace total et de l'espace disponible pour tous les fichiers de base de données

L’exemple suivant retourne l’espace total et l’espace disponible (en octets) pour tous les fichiers de base de données dans l’instance de SQL Server.

SELECT f.database_id,
       f.file_id,
       volume_mount_point,
       total_bytes,
       available_bytes
FROM sys.master_files AS f
CROSS APPLY sys.dm_os_volume_stats(f.database_id, f.file_id);

B. Retour de l'espace total et de l'espace disponible pour la base de donnée actuelle

L'exemple suivant retourne l'espace total et l'espace disponible (en octets) pour les fichiers de base de données dans la base de données actuelle.

SELECT database_id,
       f.file_id,
       volume_mount_point,
       total_bytes,
       available_bytes
FROM sys.database_files AS f
CROSS APPLY sys.dm_os_volume_stats(DB_ID(), f.file_id);