sys.database_files (Transact-SQL)

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

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 = Datenbank wurde von einer früheren Version von SQL Server aktualisiert (gültig für SQL Server 2005 und frühere Versionen).
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
LOG
FILESTREAM
FULLTEXT
data_space_id int Der Wert kann null oder größer als 0 sein. Ein Wert von 0 represents the database log file, and a value greater than zero represents the ID of the filegroup where this data file is stored.
name sysname Logischer Name der Datei in der Datenbank
physical_name nvarchar(260) Betriebssystem-Dateiname Wenn die Datenbank von einer Verfügbarkeitsgruppe gehostet wird, die sekundäres Replikat lesbar ist, physical_name wird der Dateispeicherort der primären Replikatdatenbank angegeben. Um den richtigen Speicherort einer lesbaren sekundären Datenbank abzufragen, verwenden Sie sys.sysaltfiles.
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-Dateigruppencontainern gibt „size“ die derzeit für den Container verwendete Größe an.
max_size int Maximale Dateigröße in Seiten mit einer Größe von 8 KB:

0 = Keine Vergrößerung zulässig.
-1 = Datei kann vergrößert werden, bis der Datenträger voll ist.
268435456 = Protokolldatei kann auf maximal 2 TB vergrößert werden.
Bei FILESTREAM-Dateigruppencontainern max_size entspricht die maximale Größe des Containers.
Datenbanken, die mit einem unbegrenzten Protokolldateigrößenbericht -1 für die maximale Größe der Protokolldatei aktualisiert werden.
In Azure SQL-Datenbank kann die Summe der max_size Werte für alle Datendateien kleiner als die maximale Datengröße für die Datenbank sein. Verwenden Sie DATABASEPROPERTYEX(DB_NAME(), 'MaxSizeInBytes'), um die maximale Datenbankgröße zu ermitteln.
growth int 0 = Die Datei hat eine feste Größe und wird nicht vergrößert.

Größer als 0 = Datei wird automatisch vergrößert.
Wenn is_percent_growth = 0, ist das Wachstum inkrementell in Einheiten von 8-KB-Seiten, gerundet auf die nächsten 64 KB.
Wenn is_percent_growth = 1, wird das Wachstum als ganze Zahl prozentual ausgedrückt.
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 Sparsedatei einer Datenbankmomentaufnahme (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 = Abgelegter Dateiname (name oder physical_name) ist erst nach der nächsten Protokollsicherung wiederverwendbar. 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 entsprechend differential_base_lsn.
redo_start_lsn numeric(25,0) LSN, bei der das nächste Rollforward beginnen muss.

IstNULL, es sei dennRESTORING = state, oder .state = RECOVERY_PENDING
redo_start_fork_guid uniqueidentifier Eindeutiger Bezeichner des Verzweigungspunkts. Die first_fork_guid nächste wiederhergestellte 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.

IstNULL, es sei dennRESTORING = state, oder .state = RECOVERY_PENDING
redo_target_fork_guid uniqueidentifier Die Wiederherstellungsverzweigung, auf der die Datei wiederhergestellt werden kann. Gekoppelt mit 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 die Datenbank-Engine die Aufhebung der aktuellen Seitenzuordnungen sowie die zugehörigen Sperren, bis für die Transaktion ein Commit ausgeführt wurde. Bei verzögerten Löschvorgängen wird der zugeordnete Speicherplatz nicht sofort freigegeben. Daher entsprechen die Werte, die unmittelbar nach dem Ablegen oder Abschneiden eines großen Objekts zurückgegeben sys.database_files werden, möglicherweise nicht den tatsächlich verfügbaren Speicherplatz.

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 den leeren Speicherplatz 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;

Beispielabfragen mit SQL-Datenbank finden Sie unter Verwalten von Dateispeicherplatz für Datenbanken in Azure SQL-Datenbank. Ihre Möglichkeiten: