sys.dm_os_volume_stats (Transact-SQL)

Si applica a:SQL Server

Restituisce informazioni sul volume del sistema operativo (directory) in cui i database e i file specificati vengono archiviati in SQL Server. Utilizzare questa funzione a gestione dinamica per verificare gli attributi dell'unità disco fisica o restituire informazioni sullo spazio libero disponibile relative alla directory.

Convenzioni di sintassi Transact-SQL

Sintassi

sys.dm_os_volume_stats (database_id, file_id)  

Argomenti

database_id
ID del database. database_id è di tipo int e non prevede alcun valore predefinito. Non può essere NULL.

file_id
ID del file. file_id è int, senza impostazione predefinita. Non può essere NULL.

Tabella restituita

Colonna Tipo di dati Descrizione
database_id int ID del database. Non può essere null.
file_id int ID del file. Non può essere null.
volume_mount_point nvarchar(512) Punto di montaggio in corrispondenza del quale si trova la radice del volume. Può restituire una stringa vuota. Restituisce null nel sistema operativo Linux.
volume_id nvarchar(512) ID di volume del sistema operativo. Può restituire una stringa vuota. Restituisce null nel sistema operativo Linux.
logical_volume_name nvarchar(512) Nome del volume logico. Può restituire una stringa vuota. Restituisce null nel sistema operativo Linux.
file_system_type nvarchar(512) Tipo di volume del file system (ad esempio, NTFS, FAT, RAW). Può restituire una stringa vuota. Restituisce null nel sistema operativo Linux.
total_bytes bigint Dimensioni totali del volume, espresse in byte. Non può essere null.
available_bytes bigint Spazio libero disponibile nel volume. Non può essere null.
supports_compression tinyint Indica se il volume supporta la compressione eseguita dal sistema operativo. Non può essere Null in Windows e restituisce null nel sistema operativo Linux.
supports_alternate_streams tinyint Indica se il volume supporta flussi alternativi. Non può essere Null in Windows e restituisce null nel sistema operativo Linux.
supports_sparse_files tinyint Indica se il volume supporta i file sparse. Non può essere Null in Windows e restituisce null nel sistema operativo Linux.
is_read_only tinyint Indica se il volume è attualmente contrassegnato come di sola lettura. Non può essere null.
is_compressed tinyint Indica se il volume è attualmente compresso. Non può essere Null in Windows e restituisce null nel sistema operativo Linux.
incurs_seek_penalty tinyint Indica il tipo di archiviazione che supporta questo volume. I valori possibili sono:

0: Nessuna penalità di ricerca in questo volume, in genere quando il dispositivo di archiviazione è PMM o SSD

1: Cercare penalità in questo volume, in genere quando il dispositivo di archiviazione è HDD

2: Il tipo di archiviazione non può essere determinato quando il volume si trova in un percorso UNC o in condivisioni montate

NULL: il tipo di archiviazione non può essere determinato nel sistema operativo Linux

Si applica a: SQL Server (a partire da SQL Server 2019 (15.x))

Sicurezza

Autorizzazioni

È richiesta l'autorizzazione VIEW SERVER STATE.

Autorizzazioni per SQL Server 2022 e versioni successive

È richiesta l'autorizzazione VIEW SERVER PERFORMANCE STATE nel server.

Esempi

R. Restituzione dello spazio totale e dello spazio disponibile per tutti i file di database

Nell'esempio seguente viene restituito lo spazio totale e lo spazio disponibile (in byte) per tutti i file di database nell'istanza di 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. Restituzione dello spazio totale e dello spazio disponibile per il database corrente

Nell'esempio seguente vengono restituiti lo spazio totale e lo spazio disponibile (in byte) per i file nel database corrente.

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);  

Vedi anche

sys.master_files (Transact-SQL)
sys.database_files (Transact-SQL)