sys.dm_os_volume_stats (Transact-SQL)
返回有关存储指定数据库和文件的操作系统卷(目录)的信息。在 SQL Server 2008 R2 SP1 和更高版本中使用此动态管理函数检查物理磁盘驱动器的属性或返回有关该目录的可用空间信息。
语法
sys.dm_os_volumne_stats (database_id, file_id)
参数
database_id
数据库的 ID。database_id 的数据类型为 int,没有默认值。不能为 NULL。file_id
文件的 ID。file_id 的数据类型为 int,没有默认值。不能为 NULL。
返回的表
列 |
数据类型 |
说明 |
database_id |
int |
数据库的 ID。不能为 Null。 |
file_id |
int |
文件的 ID。不能为 Null。 |
volume_mount_point |
nvarchar(512) |
根卷上的装入点。可返回空字符串。 |
volume_id |
nvarchar(512) |
操作系统卷 ID。可返回空字符串 |
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 权限。
示例
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.name), f.file_id);