sys.dm_os_volume_stats (Transact-SQL)
Возвращает сведения о томе (каталоге) операционной системы, в котором хранятся указанные базы данных и файлы SQL Server 2012. Используйте эту функцию динамического управления для проверки атрибутов физического диска или для получения сведений об объеме свободного пространства в каталоге.
Синтаксические обозначения Transact-SQL
Синтаксис
sys.dm_os_volume_stats (database_id, file_id)
Аргументы
database_id
Идентификатор базы данных. Аргумент database_id имеет тип int и не имеет значения по умолчанию. Не может быть NULL.file_id
Идентификатор файла. Аргумент file_id имеет тип int и не имеет значения по умолчанию. Не может быть NULL.
Возвращаемая таблица
Столбец |
Тип данных |
Описание |
database_id |
int |
Идентификатор базы данных. Не может принимать значение NULL. |
file_id |
int |
Идентификатор файла. Не может принимать значение NULL. |
volume_mount_point |
nvarchar(512) |
Точка подключения, с которой ассоциирован корень тома. Может возвращать пустую строку. |
volume_id |
nvarchar(512) |
Идентификатор тома операционной системы. Может возвращать пустую строку |
logical_volume_name |
nvarchar(512) |
Логическое имя тома. Может возвращать пустую строку |
file_system_type |
nvarchar(512) |
Тип файловой системы тома (например, NTFS, FAT, RAW). Может возвращать пустую строку |
total_bytes |
bigint |
Общий размер тома в байтах. Не может принимать значение NULL. |
available_bytes |
bigint |
Доступное свободное место на томе. Не может принимать значение NULL. |
supports_compression |
bit |
Указывает, поддерживает ли том сжатие на уровне операционной системы. Не может принимать значение NULL. |
supports_alternate_streams |
bit |
Указывает, поддерживает ли том дополнительные потоки. Не может принимать значение NULL. |
supports_sparse_files |
bit |
Указывает, поддерживает ли том разреженные файлы. Не может принимать значение NULL. |
is_read_only |
bit |
Указывает, помечен ли том как доступный только для чтения. Не может принимать значение NULL. |
is_compressed |
bit |
Указывает, сжат ли том в настоящее время. Не может принимать значение NULL. |
Безопасность
Разрешения
Необходимо разрешение VIEW SERVER STATE.
Примеры
А.Получение сведений об общем и доступном пространстве для всех файлов баз данных
В следующем примере выполняется возврат значения общего и доступного пространства (в байтах) для всех файлов баз данных в экземпляре 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);
Б.Получение сведений об общем и доступном пространстве для текущей базы данных
В следующем примере выполняется возврат значения общего и доступного пространства (в байтах) для файлов текущей базы данных.
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);