sys.dm_os_volume_stats (Transact-SQL)
Область применения:SQL Server
Возвращает сведения о томе операционной системы (каталоге), в котором хранятся указанные базы данных и файлы в SQL Server. Используйте эту функцию динамического управления для проверки атрибутов физического диска или для получения сведений об объеме свободного пространства в каталоге.
Соглашения о синтаксисе Transact-SQL
Синтаксис
sys.dm_os_volume_stats (database_id , file_id)
Аргументы
database_id
Идентификатор базы данных. Аргумент database_id имеет тип int и не имеет значения по умолчанию. Не удается NULL
.
file_id
Идентификатор файла.
file_id не используется без значения по умолчанию. Не удается NULL
.
Возвращаемая таблица
Столбец | Тип данных | Описание |
---|---|---|
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 или SSD1 . Поиск штрафа на этом томе, как правило, когда устройство хранения является HDD2 . Тип хранилища не может быть определен, если том находится на пути UNC или подключенных общих ресурсахNULL : тип хранилища не может быть определен в операционной системе Linuxприменимо к следующим версиям: SQL Server 2019 (15.x) и более поздних версий |
Разрешения
ДЛЯ SQL Server 2019 (15.x) и более ранних версий требуется разрешение VIEW SERVER STATE
на сервере.
ДЛЯ SQL Server 2022 (16.x) и более поздних версий требуется разрешение VIEW SERVER PERFORMANCE 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);
B. Получение сведений об общем и доступном пространстве для текущей базы данных
В следующем примере выполняется возврат значения общего и доступного пространства (в байтах) для файлов текущей базы данных.
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);