sys.dm_os_volume_stats (Transact-SQL)
ОБЛАСТЬ ПРИМЕНЕНИЯ:
SQL Server
База данных SQL Azure
Azure Synapse Analytics
Parallel Data Warehouse
Возвращает сведения о томе (каталоге) операционной системы, в котором хранятся указанные базы данных и файлы SQL Server. Используйте эту функцию динамического управления для проверки атрибутов физического диска или для получения сведений об объеме свободного пространства в каталоге.
Синтаксические обозначения в Transact-SQL
Синтаксис
sys.dm_os_volume_stats (database_id, file_id)
Аргументы
database_id
Идентификатор базы данных. Аргумент database_id имеет тип int и не имеет значения по умолчанию. Не может быть NULL.
file_id
Идентификатор файла. file_id имеет тип int и не имеет значения по умолчанию. Не может быть NULL.
Возвращаемая таблица
Столбец | Data type | Описание |
---|---|---|
database_id | int | Идентификатор базы данных. Не может иметь значение NULL. |
file_id | int | Идентификатор файла. Не может иметь значение NULL. |
volume_mount_point | nvarchar(512) | Точка подключения, с которой ассоциирован корень тома. Может возвращать пустую строку. Возвращает значение NULL в операционной системе Linux. |
volume_id | nvarchar(512) | Идентификатор тома операционной системы. Может возвращать пустую строку. Возвращает значение NULL в операционной системе Linux. |
logical_volume_name | nvarchar(512) | Логическое имя тома. Может возвращать пустую строку. Возвращает значение NULL в операционной системе Linux. |
file_system_type | nvarchar(512) | Тип файловой системы тома (например, NTFS, FAT, RAW). Может возвращать пустую строку. Возвращает значение NULL в операционной системе Linux. |
total_bytes | bigint | Общий размер тома в байтах. Не может иметь значение NULL. |
available_bytes | bigint | Доступное свободное место на томе. Не может иметь значение NULL. |
supports_compression | tinyint | Указывает, поддерживает ли том сжатие на уровне операционной системы. не может иметь значение null в Windows и возвращает значение null в операционной системе Linux. |
supports_alternate_streams | tinyint | Указывает, поддерживает ли том дополнительные потоки. не может иметь значение null в Windows и возвращает значение null в операционной системе Linux. |
supports_sparse_files | tinyint | Указывает, поддерживает ли том разреженные файлы. не может иметь значение null в Windows и возвращает значение null в операционной системе Linux. |
is_read_only | tinyint | Указывает, помечен ли том как доступный только для чтения. Не может иметь значение NULL. |
is_compressed | tinyint | Указывает, сжат ли том в настоящее время. не может иметь значение null в Windows и возвращает значение null в операционной системе Linux. |
incurs_seek_penalty | tinyint | Указывает тип хранилища, поддерживающего этот том. Возможны следующие значения: 0: не выполнять поиск на этом томе, как правило, если устройство хранения PMM или SSD 1: Поиск штрафов на этом томе, обычно если устройство хранения является HDD 2: тип хранилища не может быть определен, если том расположен по UNC-пути или подключенным общим папкам NULL: тип хранилища не может быть определен в операционной системе Linux Применимо к: SQL Server (начиная с SQL Server 2019 (15.x) ) |
Безопасность
Разрешения
Требуется разрешение VIEW SERVER STATE
.
Примеры
A. Получение сведений об общем и доступном пространстве для всех файлов баз данных
В следующем примере выполняется возврат значения общего и доступного пространства (в байтах) для всех файлов баз данных в экземпляре 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);
См. также:
sys.master_files (Transact-SQL)
sys.database_files (Transact-SQL)