sys.dm_os_volume_stats (Transact-SQL)
Devuelve información sobre el volumen (directorio) del sistema operativo en que están almacenados los archivos y bases de datos especificados. Utilice esta función de administración dinámica de SQL Server 2008 R2 SP1 y versiones posteriores para comprobar los atributos de la unidad de disco física y obtener información sobre el espacio disponible en el directorio.
Sintaxis
sys.dm_os_volumne_stats (database_id, file_id)
Argumentos
database_id
Identificador de la base de datos. database_id es de tipo int y no tiene valor predeterminado. No puede ser NULL.file_id
Identificador del archivo. file_id es de tipo int y no tiene valor predeterminado. No puede ser NULL.
Tabla devuelta
Columna |
Tipo de datos |
Descripción |
database_id |
int |
Identificador de la base de datos. No puede ser NULL. |
file_id |
int |
Identificador del archivo. No puede ser NULL. |
volume_mount_point |
nvarchar(512) |
Punto de montaje en el que el volumen tiene su raíz. Puede devolver una cadena vacía. |
volume_id |
nvarchar(512) |
Identificador del volumen del sistema operativo. Puede devolver una cadena vacía. |
logical_volume_name |
nvarchar(512) |
Nombre lógico del volumen. Puede devolver una cadena vacía. |
file_system_type |
nvarchar(512) |
Tipo de volumen de sistema de archivos (por ejemplo NTFS, FAT, RAW). Puede devolver una cadena vacía. |
total_bytes |
bigint |
Tamaño total del volumen en bytes. No puede ser NULL. |
available_bytes |
bigint |
Espacio disponible del volumen. No puede ser NULL. |
supports_compression |
bit |
Indica si el volumen admite la compresión del sistema operativo. No puede ser NULL. |
supports_alternate_streams |
bit |
Indica si el volumen admite flujos alternativos. No puede ser NULL. |
supports_sparse_files |
bit |
Indica si el volumen admite archivos dispersos. No puede ser NULL. |
is_read_only |
bit |
Indica si el volumen está marcado actualmente como de solo lectura. No puede ser NULL. |
is_compressed |
bit |
Indica si el volumen está comprimido actualmente. No puede ser NULL. |
Seguridad
Permisos
Requiere el permiso VIEW SERVER STATE.
Ejemplos
A. Devolver el espacio total y el espacio disponible de todos los archivos de base de datos
El ejemplo siguiente devuelve el espacio total y el espacio disponible (en bytes) de todos los archivos de base de datos de 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. Devolver el espacio total y el espacio disponible de la base de datos actual
El ejemplo siguiente devuelve el espacio total y el espacio disponible (en bytes) de los archivos de base de datos de 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.name), f.file_id);