sys.dm_os_volume_stats (Transact-SQL)

返回有关存储指定数据库和文件的操作系统卷(目录)的信息。在 SQL Server 2008 R2 SP1 和更高版本中使用此动态管理函数检查物理磁盘驱动器的属性或返回有关该目录的可用空间信息。

主题链接图标Transact-SQL 语法约定

语法

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);