sys.dm_os_volume_stats (Transact-SQL)
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 los archivos especificados en SQL Server. Utilice esta función de administración dinámica para comprobar los atributos de la unidad de disco física y obtener información sobre el espacio disponible en el directorio.
Convenciones de sintaxis de Transact-SQL
Sintaxis
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 se puede NULL
.
file_id
Id. del archivo.
file_id es int, sin ningún valor predeterminado. No se puede NULL
.
Tabla devuelta
Columna | Tipo de dato | Descripción |
---|---|---|
database_id |
int | Identificador de la base de datos. No acepta valores NULL. |
file_id |
int | Id. del archivo. No acepta valores NULL. |
volume_mount_point |
nvarchar(512) | Punto de montaje en el que el volumen tiene su raíz. Puede devolver una cadena vacía. Devuelve null en Linux. |
volume_id |
nvarchar(512) | Identificador del 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 de sistema de archivos (por ejemplo NTFS, FAT, RAW). Puede devolver una cadena vacía. Devuelve null en Linux. |
total_bytes |
bigint | Tamaño total del volumen en bytes. No acepta valores NULL. |
available_bytes |
bigint | Espacio disponible del volumen. No acepta valores NULL. |
supports_compression |
tinyint | Indica si el volumen admite la compresión del sistema operativo. No acepta valores NULL en Windows y devuelve NULL en Linux. |
supports_alternate_streams |
tinyint | Indica si el volumen admite flujos alternativos. No acepta valores NULL en Windows y devuelve NULL en Linux. |
supports_sparse_files |
tinyint | Indica si el volumen admite archivos dispersos. No acepta valores NULL en Windows y devuelve NULL en Linux. |
is_read_only |
tinyint | Indica si el volumen está marcado actualmente como de solo lectura. No acepta valores NULL. |
is_compressed |
tinyint | Indica si el volumen está comprimido actualmente. No acepta valores NULL en Windows y devuelve NULL en Linux. |
incurs_seek_penalty |
tinyint | Indica el tipo de almacenamiento que admite 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 SSD.1 : busque penalización en este volumen, normalmente cuando el dispositivo de almacenamiento sea HDD.2 : el tipo de almacenamiento no se puede determinar cuando el volumen está en una ruta de acceso UNC o recursos compartidos montadosNULL : el tipo de almacenamiento no se puede determinar en el sistema operativo Linux.se aplica a: SQL Server 2019 (15.x) y versiones posteriores |
Permisos
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.
Ejemplos
A Devolver el espacio total y el espacio disponible de todos los archivos de base de datos
En el ejemplo siguiente se devuelve el espacio total y el espacio disponible (en bytes) para 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.file_id);