sys.dm_os_volume_stats (Transact-SQL)

返回有关 SQL Server 2012 中存储指定数据库和文件的操作系统卷(目录)的信息。 通过使用此动态管理函数,可以检查物理磁盘驱动器的属性,或返回有关目录的可用空间的信息。

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

语法

sys.dm_os_volume_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);

请参阅

参考

sys.master_files (Transact-SQL)

sys.database_files (Transact-SQL)