sys.dm_os_volume_stats (Transact-SQL)
指定したデータベースとファイルが SQL Server に格納されているオペレーティング システム ボリューム (ディレクトリ) に関する情報を返します。 この動的管理関数は、物理ディスク ドライブの属性を確認する場合や、ディレクトリの使用可能な空き容量に関する情報を取得する場合に使用します。
適用対象: SQL Server (SQL Server 2008 R2 から現在のバージョンまで) |
構文
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);