sys.dm_os_volume_stats (Transact-SQL)

適用対象: SQL Server Azure SQL Database Azure Synapse Analytics Parallel Data Warehouse

指定したデータベースとファイルが に格納されているオペレーティング システム ボリューム (ディレクトリ) に関する情報を返します SQL Server 。 この動的管理関数は、物理ディスク ドライブの属性を確認する場合や、ディレクトリの使用可能な空き容量に関する情報を取得する場合に使用します。

トピック リンク アイコン Transact-SQL 構文表記規則

構文

sys.dm_os_volume_stats (database_id, file_id)  

引数

database_id
データベースの ID です。 database_idint, 、既定値はありません。 Nll は指定できません。

file_id
ファイルの ID。 file_idは int で、既定値はありません。 Nll は指定できません。

返されるテーブル

データの種類 説明
database_id int データベースの ID です。 null にすることはできません。
file_id int ファイルの ID。 null にすることはできません。
volume_mount_point nvarchar(512) ボリュームがルートとするマウント ポイント。 空の文字列を返す場合があります。 Linux オペレーティング システムで null を返します。
volume_id nvarchar(512) オペレーティング システムのボリューム ID。 空の文字列を返す場合があります。 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 ボリュームがオペレーティング システムによる圧縮をサポートするかどうかを示します。 Linux オペレーティング システムでは、Windows null にすることはできません。また、Null を返します。
supports_alternate_streams tinyint ボリュームが代替ストリームをサポートするかどうかを示します。 Linux オペレーティング システムでは、Windows null にすることはできません。また、Null を返します。
supports_sparse_files tinyint ボリュームでスパース ファイルがサポートされるかどうかを示します。 Linux オペレーティング システムでは、Windows null にすることはできません。また、Null を返します。
is_read_only tinyint ボリュームが現在読み取り専用としてマークされているかどうかを示します。 null にすることはできません。
is_compressed tinyint このボリュームが現在圧縮されているかどうかを示します。 Linux オペレーティング システムでは、Windows null にすることはできません。また、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 (Transact-SQL)
sys.database_files (Transact-SQL)