适用于:SQL Server
返回关于SQL Server中指定数据库和文件存储的操作系统卷(目录)的信息。 使用该动态管理功能检查物理磁盘驱动器的属性或返回目录的可用空间信息。
Syntax
sys.dm_os_volume_stats (database_id , file_id)
Arguments
database_id
数据库 ID。 database_id 的数据类型为 int,无默认值。 不能是 NULL。
file_id
文件的 ID。
file_id为 int,无默认值。 不能是 NULL。
返回的表
| 列 | 数据类型 | Description |
|---|---|---|
database_id |
int | 数据库 ID。 不可为 null。 |
file_id |
int | 文件的 ID。 不可为 null。 |
volume_mount_point |
nvarchar(512) | 安装卷的根点。 可以返回空字符串。 在Linux上返回空值。 |
volume_id |
nvarchar(512) | 操作系统卷ID。 可以返回空字符串。 在Linux上返回空值。 |
logical_volume_name |
nvarchar(512) | 逻辑卷名。 可以返回空字符串。 在Linux上返回空值。 |
file_system_type |
nvarchar(512) | 文件系统卷的类型(例如,NTFS、FAT、RAW)。 可以返回空字符串。 在Linux上返回空值。 |
total_bytes |
bigint | 卷的总大小以字节计。 不可为 null。 |
available_bytes |
bigint | 本卷中可用空闲空间。 不可为 null。 |
supports_compression |
tinyint | 指示卷是否支持操作系统压缩。 在 Windows 上不可 null,在 Linux 上返回 null。 |
supports_alternate_streams |
tinyint | 表示音量是否支持替代流。 在 Windows 上不可 null,在 Linux 上返回 null。 |
supports_sparse_files |
tinyint | 显示卷是否支持稀疏文件。 在 Windows 上不可 null,在 Linux 上返回 null。 |
is_read_only |
tinyint | 表示该卷是否当前标记为只读。 不可为 null。 |
is_compressed |
tinyint | 表示该体积是否正在压缩。 在 Windows 上不可 null,在 Linux 上返回 null。 |
incurs_seek_penalty |
tinyint | 表示支持该卷的存储类型。 可能的值为:0:该卷没有寻道惩罚,通常当存储设备是PMM或SSD时1:该卷的寻道惩罚,通常是存储设备为HDD时2:当卷处于UNC路径或挂载共享时,无法确定存储类型NULL:存储类型在Linux操作系统上无法确定适用于:SQL Server 2019 (15.x) 及更高版本 |
Permissions
SQL Server 2019 (15.x) 和早期版本需要 VIEW SERVER STATE 对服务器具有权限。
SQL Server 2022 (16.x) 及更高版本需要 VIEW SERVER PERFORMANCE STATE 对服务器具有权限。
Examples
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);
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);