sys.database_files (Transact-SQL)
Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance Azure Synapse Analytics Analytics 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. Ist NULL , 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. Ist NULL , 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:
- Abfragen eines Singletons nach Speicherplatzinformationen
- Abfragen eines Pools für elastische Datenbanken nach Speicherplatzinformationen
Zugehöriger Inhalt
- Datenbanken und Dateikatalogsichten (Transact-SQL)
- Dateistatus
- sys.databases (Transact-SQL)
- sys.master_files (Transact-SQL)
- Datenbankdateien und Dateigruppen
- sys.data_spaces (Transact-SQL)
- Verwalten von Dateispeicherplatz für Datenbanken in Azure SQL-Datenbank
- Verwalten von Dateispeicherplatz für Datenbanken in Azure SQL Managed Instance