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 SSD1 : recherchez une pénalité sur ce volume, généralement lorsque l’appareil de stockage est HDD2 : le type de stockage ne peut pas être déterminé lorsque le volume se trouve sur un chemin UNC ou des partages montésNULL : le type de stockage ne peut pas être déterminé sur le système d’exploitation Linuxs’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);