Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:SQL Server
Devuelve información sobre el volumen del sistema operativo (directorio) en el que se almacenan las bases de datos y archivos especificados en SQL Server. Utiliza esta función de gestión dinámica para comprobar los atributos de la unidad física de disco o devolver la información disponible en espacio libre sobre el directorio.
Convenciones de sintaxis de Transact-SQL
Syntax
sys.dm_os_volume_stats (database_id , file_id)
Argumentos
database_id
Identificador de la base de datos.
database_id es de tipo int y no tiene ningún valor predeterminado. No puede ser NULL.
file_id
Identificador del archivo.
file_id es int, sin ningún valor predeterminado. No puede ser NULL.
Tabla devuelta
| Columna | Tipo de dato | Descripción |
|---|---|---|
database_id |
int | Identificador de la base de datos. No es anulable. |
file_id |
int | Identificador del archivo. No es anulable. |
volume_mount_point |
nvarchar(512) | Punto de montaje en el que el volumen está enraizado. Puede devolver una cadena vacía. Devuelve null en Linux. |
volume_id |
nvarchar(512) | ID de volumen del sistema operativo. Puede devolver una cadena vacía. Devuelve null en Linux. |
logical_volume_name |
nvarchar(512) | Nombre lógico del volumen. Puede devolver una cadena vacía. Devuelve null en Linux. |
file_system_type |
nvarchar(512) | Tipo de volumen del sistema de archivos (por ejemplo, NTFS, FAT, RAW). Puede devolver una cadena vacía. Devuelve null en Linux. |
total_bytes |
bigint | Tamaño total en bytes del volumen. No es anulable. |
available_bytes |
bigint | Espacio libre disponible en el volumen. No es anulable. |
supports_compression |
tinyint | Indica si el volumen soporta compresión del sistema operativo. No es nullable en Windows, y devuelve null en Linux. |
supports_alternate_streams |
tinyint | Indica si el volumen soporta corrientes alternativas. No es nullable en Windows, y devuelve null en Linux. |
supports_sparse_files |
tinyint | Indica si el volumen soporta archivos dispersos. No es nullable en Windows, y devuelve null en Linux. |
is_read_only |
tinyint | Indica si el volumen está actualmente marcado como solo lectura. No es anulable. |
is_compressed |
tinyint | Indica si este volumen está actualmente comprimido. No es nullable en Windows, y devuelve null en Linux. |
incurs_seek_penalty |
tinyint | Indica el tipo de almacenamiento que soporta este volumen. Los valores posibles son:0: No hay penalización de búsqueda en este volumen, normalmente cuando el dispositivo de almacenamiento es PMM o SSD1: Penalización de búsqueda en este volumen, normalmente cuando el dispositivo de almacenamiento es un disco duro2: El tipo de almacenamiento no puede determinarse cuando el volumen está en una ruta UNC o en acciones montadasNULL: El tipo de almacenamiento no se puede determinar en el sistema operativo LinuxSe aplica a: SQL Server 2019 (15.x) y versiones posteriores. |
Permissions
SQL Server 2019 (15.x) y versiones anteriores requieren VIEW SERVER STATE permiso en el servidor.
SQL Server 2022 (16.x) y versiones posteriores requieren VIEW SERVER PERFORMANCE STATE permiso en el servidor.
Examples
A. Devuelve el espacio total y el espacio disponible para todos los archivos de la base de datos
El siguiente ejemplo devuelve el espacio total y el espacio disponible (en bytes) para todos los archivos de base de datos en la instancia 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. Devuelve el espacio total y el espacio disponible para la base de datos actual
El siguiente ejemplo devuelve el espacio total y el espacio disponible (en bytes) para los archivos de base de datos en la base de datos actual.
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);