sys.dm_os_volume_stats (Transact-SQL)
Aplica-se:SQL Server
Retorna informações sobre o volume do sistema operacional (diretório) no qual os bancos de dados e arquivos especificados são armazenados no SQL Server. Use essa função de gerenciamento dinâmico para verificar os atributos da unidade de disco físico ou retornar informações de espaço livre disponível sobre o diretório.
Convenções de sintaxe de Transact-SQL
Sintaxe
sys.dm_os_volume_stats (database_id , file_id)
Argumentos
database_id
ID do banco de dados.
database_id é int, sem padrão. Não pode ser NULL
.
file_id
ID do arquivo.
file_id é int, sem padrão. Não pode ser NULL
.
Tabela retornada
Coluna | Tipo de dado | Descrição |
---|---|---|
database_id |
int | ID do banco de dados. Não é anulável. |
file_id |
int | ID do arquivo. Não é anulável. |
volume_mount_point |
nvarchar(512) | Ponto de montagem no qual o volume está na raiz. Pode retornar uma cadeia de caracteres vazia. Retorna nulo no Linux. |
volume_id |
nvarchar(512) | ID de volume do sistema operacional. Pode retornar uma cadeia de caracteres vazia. Retorna nulo no Linux. |
logical_volume_name |
nvarchar(512) | Nome lógico do volume. Pode retornar uma cadeia de caracteres vazia. Retorna nulo no Linux. |
file_system_type |
nvarchar(512) | Tipo de volume de sistema de arquivo (por exemplo, NTFS, FAT, RAW). Pode retornar uma cadeia de caracteres vazia. Retorna nulo no Linux. |
total_bytes |
bigint | Tamanho total em bytes do volume. Não é anulável. |
available_bytes |
bigint | Espaço em disco disponível no volume. Não é anulável. |
supports_compression |
tinyint | Indica se o volume dá suporte a compressão do sistema operacional. Não anulável no Windows e retorna nulo no Linux. |
supports_alternate_streams |
tinyint | Indica se o volume dá suporte a fluxos alternativos. Não anulável no Windows e retorna nulo no Linux. |
supports_sparse_files |
tinyint | Indica se o volume dá suporte a arquivos esparsos. Não anulável no Windows e retorna nulo no Linux. |
is_read_only |
tinyint | Indica se o volume está marcado como somente leitura no momento. Não é anulável. |
is_compressed |
tinyint | Indica se esse volume está compactado no momento. Não anulável no Windows e retorna nulo no Linux. |
incurs_seek_penalty |
tinyint | Indica o tipo de armazenamento que dá suporte a esse volume. Os valores possíveis são:0 : nenhuma penalidade de busca nesse volume, normalmente quando o dispositivo de armazenamento é PMM ou SSD1 : buscar penalidade nesse volume, normalmente quando o dispositivo de armazenamento é HDD2 : o tipo de armazenamento não pode ser determinado quando o volume está em um caminho UNC ou compartilhamentos montadosNULL : o tipo de armazenamento não pode ser determinado no sistema operacional Linuxaplica-se a: SQL Server 2019 (15.x) e versões posteriores |
Permissões
O SQL Server 2019 (15.x) e versões anteriores exigem permissão VIEW SERVER STATE
no servidor.
O SQL Server 2022 (16.x) e versões posteriores exigem VIEW SERVER PERFORMANCE STATE
permissão no servidor.
Exemplos
R. Retornar espaço total e disponível para todos os arquivos de banco de dados
O exemplo a seguir retorna o espaço total e o espaço disponível (em bytes) para todos os arquivos de banco de dados na instância do 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. Retornar espaço total e disponível para o banco de dados atual
O exemplo a seguir retorna o espaço total e disponível (em bytes) para os arquivos de banco de dados no banco de dados atual.
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);