sys.database_files (Transact-SQL)
適用対象: SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
データベース自体に保存されているデータベースのファイルごとに 1 行のデータを格納します。 これはデータベース単位のビューです。
列名 | データ型 | 説明 |
---|---|---|
file_id |
int | データベース内のファイルの ID。 |
file_guid |
uniqueidentifier | ファイルの GUID。NULL = データベースが以前のバージョンの SQL Server からアップグレードされました (SQL Server 2005 以前のバージョンに対して有効)。 |
type |
tinyint | ファイルの種類です。 0 = 行 1 = ログ 2 = FILESTREAM 3 = 単に情報を示すためだけに特定されます。 サポートされていません。 将来の互換性は保証されません。 4 = フルテキスト |
type_desc |
nvarchar(60) | ファイルの種類の説明:ROWS LOG FILESTREAM FULLTEXT |
data_space_id |
int | 値には、0 または 0 より大きい値を指定できます。 0 の値はデータベース ログ ファイルを表し、0 より大きい値は、このデータ ファイルが格納されているファイル グループの ID を表します。 |
name |
sysname | データベース内のファイルの論理名。 |
physical_name |
nvarchar(260) | オペレーティング システムのファイル名。 データベースが、読み取り可能なセカンダリ レプリカ 可用性グループによってホストされている場合、 physical_name はプライマリ レプリカ データベースのファイルの場所を示します。 読み取り可能なセカンダリ データベースの正しいファイルの場所については、sys.sysaltfiles を照会してください。 |
state |
tinyint | ファイルの状態です。 0 = ONLINE 1 = RESTORING 2 = RECOVERING 3 = RECOVERY_PENDING 4 = SUSPECT 5 = 単に情報を示すためだけに特定されます。 サポートされていません。 将来の互換性は保証されません。 6 = OFFLINE 7 = DEFUNCT |
state_desc |
nvarchar(60) | ファイルの状態の説明です。ONLINE RESTORING RECOVERING RECOVERY_PENDING SUSPECT OFFLINE DEFUNCT 詳しくは、「ファイルの状態」をご覧ください。 |
size |
int | ファイルの現在のサイズ (8 KB ページ単位)。 0 = 適用なし データベース スナップショットの場合、size は、スナップショットがファイルに対して使用する中で最大の領域を表します。 FILESTREAM ファイル グループ コンテナーの場合、サイズにはコンテナーの現在使用されているサイズが反映されます。 |
max_size |
int | 最大ファイル サイズ (8 KB ページ単位)。 0 = 拡張は許可されません。 -1 = ディスクがいっぱいになるまでファイルを拡張できます。 268435456 = ログ ファイルは最大サイズの 2 TB に拡張できます。 FILESTREAM ファイル グループ コンテナーの場合、 max_size はコンテナーの最大サイズを反映します。無制限のログ ファイル サイズでアップグレードされたデータベースは、ログ ファイルの最大サイズについて -1 報告します。Azure SQL Database では、すべてのデータ ファイルの max_size 値の合計が、データベースの最大データ サイズより小さい場合があります。 DATABASEPROPERTYEX(DB_NAME(), 'MaxSizeInBytes') を使って、最大データ サイズを決定します。 |
growth |
int | 0 = ファイルのサイズは固定されており、拡張することはできません。 0 より大きい = ファイルは自動的に拡張されます。 is_percent_growth = 0 の場合、増加増分は 8 KB ページ単位で、最も近い 64 KB に丸められます。is_percent_growth = 1 の場合、増加増分は整数パーセントで表されます。 |
is_media_read_only |
bit | 1 = ファイルは読み取り専用メディア上にあります。 0 = ファイルは読み取り/書き込みメディア上にあります。 |
is_read_only |
bit | 1 = ファイルは読み取り専用としてマークされています。 0 = ファイルは読み取り/書き込み用としてマークされています。 |
is_sparse |
bit | 1 = ファイルはスパース ファイルです。 0 = ファイルはスパース ファイルではありません。 詳しくは、「データベース スナップショットのスパース ファイルのサイズを表示する方法 (Transact-SQL)」を参照してください。 |
is_percent_growth |
bit | 1 = ファイルの拡張はパーセンテージで表されます。 0 = 絶対拡張サイズ (ページ単位)。 |
is_name_reserved |
bit | 1 = ドロップされたファイル名 (name または physical_name ) は、次のログ バックアップの後にのみ再利用できます。 ファイルがデータベースから削除されると、ファイルの論理名は次回のログ バックアップまで予約された状態になります。 この列は完全復旧モデルと一括ログ復旧モデルにのみ関係します。 |
create_lsn |
numeric(25,0) | ファイルが作成されたログ シーケンス番号 (LSN) です。 |
drop_lsn |
numeric(25,0) | ファイルが削除された LSN。 0 = ファイル名は再利用できません。 |
read_only_lsn |
numeric(25,0) | ファイルを含むファイル グループが読み取り/書き込みから読み取り専用に変更された LSN (最新の変更)。 |
read_write_lsn |
numeric(25,0) | ファイルを含むファイル グループが読み取り専用から読み取り/書き込みに変更された LSN (最新の変更)。 |
differential_base_lsn |
numeric(25,0) | 差分バックアップのベースです。 この LSN の後に変更されたデータ エクステントは、差分バックアップに含まれます。 |
differential_base_guid |
uniqueidentifier | 差分バックアップの基になるベース バックアップの一意識別子。 |
differential_base_time |
datetime | differential_base_lsn に対応する時間。 |
redo_start_lsn |
numeric(25,0) | 次のロールフォワードを開始する必要がある LSN です。state = RESTORING またはstate = RECOVERY_PENDING しない限り、NULL 。 |
redo_start_fork_guid |
uniqueidentifier | 復旧分岐の一意識別子です。 復元された次のログ バックアップの first_fork_guid は、この値と一致する必要があります。 これは、ファイルの現在の状態を表します。 |
redo_target_lsn |
numeric(25,0) | このファイルのオンライン ロールフォワードが停止することができる LSN。state = RESTORING またはstate = RECOVERY_PENDING しない限り、NULL 。 |
redo_target_fork_guid |
uniqueidentifier | ファイルを復旧できる復旧分岐。 redo_target_lsn とペアになります。 |
backup_lsn |
numeric(25,0) | ファイルの最新データまたは差分バックアップの LSN。 |
注意
大きなインデックスを削除または再構築したり、大きなテーブルに対する削除や切り詰めを行うと、トランザクションがコミットされるまで、データベース エンジンにより、実際のページの割り当て解除と、それらに関連付けられたロックが遅延されます。 遅延された削除操作では、割り当てられた領域は直ちに解放されません。 そのため、大きなオブジェクトを削除または切り捨てた直後に sys.database_files
によって返される値は、使用可能な実際のディスク領域を反映していない可能性があります。
アクセス許可
ロール public のメンバーシップが必要です。 詳細については、「 Metadata Visibility Configuration」を参照してください。
例
次のステートメントでは、各データベース ファイルの名前、ファイル サイズ、空き領域のサイズが返されます。
SELECT name, size/128.0 FileSizeInMB,
size/128.0 - CAST(FILEPROPERTY(name, 'SpaceUsed') AS int)/128.0
AS EmptySpaceInMB
FROM sys.database_files;
SQL Database を使ったクエリの例については、「Azure SQL Database でデータベースのファイル領域を管理する」を参照してください。 次の操作を行うことができます。