sys.dm_os_volume_stats (Transact-SQL)

適用於: SQL Server Azure SQL Database Azure Synapse Analytics 平行處理資料倉儲

傳回儲存在 SQL Server 中之指定資料庫和檔案所在之作業系統磁碟區 (目錄) 的相關資訊。 使用此動態管理函數可檢查實體磁碟機的屬性,或傳回目錄可用空間的資訊。

主題連結圖示 Transact-SQL 語法慣例

語法

sys.dm_os_volume_stats (database_id, file_id)  

引數

database_id
資料庫的識別碼。 database_id 為沒有預設值的 int。 不能是 NULL。

file_id
檔案識別碼。 file_idint,沒有預設值。 不能是 NULL。

傳回的資料表

資料行 Data type 描述
database_id int 資料庫的識別碼。 不可以是 null。
file_id int 檔案識別碼。 不可以是 null。
volume_mount_point nvarchar(512) 磁碟區根目錄所在的掛接點。 可以傳回空字串。 在 Linux 作業系統上傳回 null。
volume_id nvarchar(512) 作業系統磁碟區識別碼。 可以傳回空字串。 在 Linux 作業系統上傳回 null。
logical_volume_name nvarchar(512) 邏輯磁碟區名稱。 可以傳回空字串。 在 Linux 作業系統上傳回 null。
file_system_type nvarchar(512) 作業系統磁碟區的類型 (例如,NTFS、FAT、RAW)。 可以傳回空字串。 在 Linux 作業系統上傳回 null。
total_bytes bigint 磁碟區的總大小 (以位元組為單位)。 不可以是 null。
available_bytes bigint 磁碟區上的可用空間。 不可以是 null。
supports_compression tinyint 表示磁碟區是否支援作業系統壓縮。 在 Windows 上不可以是 null,並且在 Linux 作業系統上傳回 null。
supports_alternate_streams tinyint 表示磁碟區是否支援替代資料流。 在 Windows 上不可以是 null,並且在 Linux 作業系統上傳回 null。
supports_sparse_files tinyint 表示磁碟區是否支援疏鬆檔案。 在 Windows 上不可以是 null,並且在 Linux 作業系統上傳回 null。
is_read_only tinyint 表示磁碟區目前是否標示成唯讀。 不可以是 null。
is_compressed tinyint 表示這個磁碟區目前是否已經壓縮。 在 Windows 上不可以是 null,並且在 Linux 作業系統上傳回 null。
incurs_seek_penalty tinyint 指出支援此磁片區的儲存體類型。 可能的值包括:

0:在此磁片區上沒有搜尋損失,通常是在存放裝置是 PMM 或 SSD 時

1:在此磁片區上搜尋損失,通常是在存放裝置為 HDD 時

2:當磁片區位於 UNC 路徑或掛接的共用上時,無法判斷存放裝置類型

Null:無法在 Linux 作業系統上判斷儲存體類型

適用于: SQL Server從) 開始 (SQL Server 2019 (15.x)

安全性

權限

需要 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 (SQL transact-sql)
sys.database_files (Transact-SQL)