sys.database_files (Transact-SQL)

Anwendungsbereich: JaSQL Server (alle unterstützten Versionen) JaAzure SQL-Datenbank JaVerwaltete Azure SQL-Instanz JaAzure Synapse Analytics JaParallel Data Warehouse

Enthält eine Zeile pro Datei einer Datenbank, wie sie in der Datenbank selbst gespeichert ist. Hierbei handelt es sich um eine Sicht pro Datenbank.

Spaltenname Datentyp BESCHREIBUNG
file_id int ID der Datei in der Datenbank
file_guid uniqueidentifier GUID der Datei.

NULL = die Datenbank wurde von einer früheren Version von aktualisiert SQL Server (gültig für SQL Server 2005 und früher).
type tinyint Dateityp:

0 = Zeilen

1 = Protokoll

2 = FILESTREAM

3 = Nur für Informationszwecke identifiziert. Wird nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

4 = Volltext
type_desc nvarchar(60) Beschreibung des Dateityps:

ROWS

PROTOKOLL

FILESTREAM

FULLTEXT
data_space_id int Der Wert kann 0 oder größer sein. Der Wert 0 stellt die Datenbankprotokolldatei dar, und ein Wert größer als 0 stellt die ID der Dateigruppe dar, in der diese Datendatei gespeichert ist.
name sysname Logischer Name der Datei in der Datenbank
physical_name nvarchar(260) Betriebssystem-Dateiname Wenn die Datenbank durch ein lesbares sekundäresAlwaysOn-Replikat gehostet wird, gibt physical_name den Datei Speicherort der primären Replikat Datenbank an. Um den korrekten Datei Speicherort einer lesbaren sekundären Datenbank zu erhalten, Fragen Sie sys.sysaltfilesab.
state tinyint Dateistatus:

0 = ONLINE

1 = RESTORING

2 = RECOVERING

3 = RECOVERY_PENDING

4 = SUSPECT

5 = Nur für Informationszwecke identifiziert. Wird nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

6 = OFFLINE

7 = DEFUNCT
state_desc nvarchar(60) Beschreibung des Dateistatus:

ONLINE

RESTORING

RECOVERING

RECOVERY_PENDING

SUSPECT

OFFLINE

DEFUNCT

Weitere Informationen finden Sie im Abschnitt Dateistatus.
size int Aktuelle Größe der Datei in Seiten mit einer Größe von 8 KB.

0 = Nicht zutreffend

Für eine Datenbankmomentaufnahme gibt size den Speicherplatz an, den die Momentaufnahme maximal für die Datei verwenden kann.

Bei FILESTREAM-Dateigruppen Containern entspricht Größe der aktuellen verwendeten Größe des Containers.
max_size int Maximale Dateigröße in Seiten mit einer Größe von 8 KB:

0 = Keine Vergrößerung zulässig.

-1 = Datei wird vergrößert, bis der Datenträger voll ist.

268435456 = Protokolldatei wird bis zu einer maximalen Größe von 2 TB vergrößert.

Bei FILESTREAM-Dateigruppen Containern max_size die maximale Größe des Containers wider.

Beachten Sie, dass für Datenbanken, die mit einer unbegrenzten Protokolldatei Größe aktualisiert werden, der Wert-1 für die maximale Größe der Protokolldatei gemeldet wird.
wachsen int 0 = Die Datei hat eine feste Größe und wird nicht vergrößert.

>0 = die Datei wird automatisch vergrößert.

Ist is_percent_growth = 0, wird die Schrittweite für die Vergrößerung in Einheiten von Seiten mit einer Größe von 8 KB ausgedrückt, auf den nächsten durch 64 KB teilbaren Wert gerundet.

Falls is_percent_growth = 1, erfolgt die Vergrößerung als ganzzahliger Prozentwert.
is_media_read_only bit 1 = Die Datei befindet sich auf einem schreibgeschützten Medium.

0 = Die Datei befindet sich auf einem Lese/Schreib-Medium.
is_read_only bit 1 = Die Datei ist als schreibgeschützt gekennzeichnet.

0 = Die Datei ist als Lese/Schreib-Datei gekennzeichnet.
is_sparse bit 1 = Die Datei ist eine Sparsedatei.

0 = Die Datei ist keine Sparsedatei.

Weitere Informationen finden Sie unter Anzeigen der Größe der Datei mit geringer Dichte einer Datenbank-Momentaufnahme (Transact-SQL).
is_percent_growth bit 1 = Die Vergrößerung der Datei erfolgt prozentual.

0 = Absolute Vergrößerung in Seiten.
is_name_reserved bit 1 = Der gelöschte Dateiname (name oder physical_name) kann erst nach der nächsten Protokollsicherung wiederverwendet werden. Wenn Dateien aus einer Datenbank gelöscht werden, bleiben die logischen Namen bis zur nächsten Protokollsicherung reserviert. Diese Spalte ist nur beim vollständigen und beim massenprotokollierten Wiederherstellungsmodell relevant.
create_lsn numeric(25,0) Protokollfolgenummer (LSN, Log Sequence Number), bei der die Datei erstellt wurde
drop_lsn numeric(25,0) LSN, bei der die Datei gelöscht wurde

0 = Der Dateiname ist nicht für die Wiederverwendung verfügbar.
read_only_lsn numeric(25,0) LSN, bei der die Dateigruppe mit der Datei von Lesen/Schreiben in Schreibgeschützt geändert wurde (letzte Änderung)
read_write_lsn numeric(25,0) LSN, bei der die Dateigruppe mit der Datei von Schreibgeschützt in Lesen/Schreiben geändert wurde (letzte Änderung)
differential_base_lsn numeric(25,0) Die Basis für differenzielle Sicherungen. Datenblöcke, die nach dieser LSN geändert wurden, werden in eine differenzielle Sicherung eingeschlossen.
differential_base_guid uniqueidentifier Der eindeutige Bezeichner der Basissicherung, auf der eine differenzielle Sicherung basiert.
differential_base_time datetime Zeit, die differential_base_lsn entspricht
redo_start_lsn numeric(25,0) LSN, bei der das nächste Rollforward beginnen muss.

Ist NULL, außer state = RESTORING oder state = RECOVERY_PENDING.
redo_start_fork_guid uniqueidentifier Eindeutiger Bezeichner des Verzweigungspunkts. Die first_fork_guid der nächsten wiederhergestellten Protokollsicherung muss mit diesem Wert übereinstimmen. Dies stellt den aktuellen Status der Datei dar.
redo_target_lsn numeric(25,0) Die LSN, bei der das Onlinerollforward für diese Datei beendet werden kann.

Ist NULL, außer state = RESTORING oder state = RECOVERY_PENDING.
redo_target_fork_guid uniqueidentifier Die Wiederherstellungsverzweigung, auf der die Datei wiederhergestellt werden kann. Hierzu gehört redo_target_lsn.
backup_lsn numeric(25,0) Die LSN der letzten Datensicherung oder differenziellen Sicherung der Datei.

Hinweis

Wenn Sie große Indizes löschen oder neu erstellen bzw. wenn Sie große Tabellen löschen oder abschneiden, verzögert Datenbank-Engine die Aufhebung der aktuellen Seitenzuordnungen sowie die zugehörigen Sperren, bis für die Transaktion ein Commit ausgeführt wird. Bei verzögerten Löschvorgängen wird der zugeordnete Speicherplatz nicht sofort freigegeben. Daher spiegeln die Werte, die von sys.database_files sofort nach dem Löschen oder Abschneiden eines großen Objekts zurückgegeben werden, möglicherweise nicht den tatsächlichen verfügbaren Speicherplatz wider.

Berechtigungen

Erfordert die Mitgliedschaft in der public -Rolle. Weitere Informationen finden Sie unter Metadata Visibility Configuration.

Beispiele

Die folgende Anweisung gibt den Namen, die Dateigröße und die Menge des leeren Speicherplatzes für jede Datenbankdatei zurück.

SELECT name, size/128.0 FileSizeInMB,
size/128.0 - CAST(FILEPROPERTY(name, 'SpaceUsed') AS int)/128.0 
   AS EmptySpaceInMB
FROM sys.database_files;

Weitere Informationen zum Verwenden von SQL-Datenbank finden Sie unter bestimmen der Datenbankgröße in Azure SQL-Datenbank V12 im Blog des SQL Customer Advisory Teams.

Weitere Informationen

Datenbanken und Dateikatalogsichten (Transact-SQL)
Dateistatus
sys.databases (Transact-SQL)
sys.master_files (Transact-SQL-)
Database Files and Filegroups
sys.data_spaces (Transact-SQL)