sys.dm_os_volume_stats (Transact-SQL)
Retorna informações sobre o volume do sistema operacional (diretório) no qual os bancos de dados especificados e arquivos são armazenados no SQL Server 2012. 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 da sintaxe 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 dados |
Descrição |
database_id |
int |
ID do banco de dados. Não pode ser nulo. |
file_id |
int |
ID do arquivo. Não pode ser nulo. |
volume_mount_point |
nvarchar(512) |
Ponto de montagem no qual o volume está na raiz. Pode retornar uma cadeia de caracteres vazia. |
volume_id |
nvarchar(512) |
ID de volume do sistema operacional. Pode retornar uma cadeia de caracteres vazia |
logical_volume_name |
nvarchar(512) |
Nome lógico do volume. Pode retornar uma cadeia de caracteres vazia |
file_system_type |
nvarchar(512) |
Tipo de volume de sistema de arquivo (por exemplo, NTFS, FAT, RAW). Pode retornar uma cadeia de caracteres vazia |
total_bytes |
bigint |
Tamanho total em bytes do volume. Não pode ser nulo. |
available_bytes |
bigint |
Espaço em disco disponível no volume. Não pode ser nulo. |
supports_compression |
bit |
Indica se o volume dá suporte a compressão do sistema operacional. Não pode ser nulo. |
supports_alternate_streams |
bit |
Indica se o volume dá suporte a fluxos alternativos. Não pode ser nulo. |
supports_sparse_files |
bit |
Indica se o volume dá suporte a arquivos esparsos. Não pode ser nulo. |
is_read_only |
bit |
Indica se o volume está marcado como somente leitura no momento. Não pode ser nulo. |
is_compressed |
bit |
Indica se esse volume está compactado no momento. Não pode ser nulo. |
Segurança
Permissões
Exige a permissão VIEW SERVER STAT.
Exemplos
A.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 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.name), f.file_id);