共用方式為


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
    database_id 是 int,沒有預設值。不可以是 NULL。

  • file_id
    檔案識別碼。file_id 是 int,沒有預設值。不可以是 NULL。

傳回的資料表

資料行

資料類型

說明

database_id

int

資料庫的識別碼。不可以是 Null。

file_id

int

檔案識別碼。不可以是 Null。

volume_mount_point

nvarchar(512)

磁碟區根目錄所在的掛載點。可以傳回空字串。

volume_id

nvarchar(512)

作業系統磁碟區識別碼。可以傳回空字串

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