sys.dm_os_volume_stats (Transact-SQL)
傳回儲存指定資料庫及檔案所在之作業系統磁碟區 (目錄) 的相關資訊。在 SQL Server 2008 R2 SP1 和更新版本中,使用此動態管理函數檢查實體磁碟機的屬性,或傳回目錄可用空間的資訊。
語法
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);