sys.database_files (Transact-SQL)

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalysplattformssystem (PDW)SQL-databas i Microsoft Fabric

Innehåller en rad per fil i en databas som lagras i själva databasen. Detta är en vy per databas.

Kolumnnamn Datatyp Description
file_id int ID för filen i databasen.
file_guid uniqueidentifier GUID för filen.

NULL = Databasen uppgraderades från en tidigare version av SQL Server (giltig för SQL Server 2005 och tidigare versioner).
type tinyint Filtyp:

0 = Rader
1 = Logg
2 = FILSTRÖM
3 = Identifierad endast för informationsändamål. Stöds inte. Framtida kompatibilitet garanteras inte.
4 = Fulltext
type_desc nvarchar(60) Beskrivning av filtypen:

ROWS
LOG
FILESTREAM
FULLTEXT
data_space_id int Värdet kan vara noll eller större än noll. Ett värde på 0 representerar databasens loggfil, och ett värde större än noll representerar ID:t för filgruppen där denna datafil lagras.
name sysname Logiskt namn på filen i databasen.
physical_name nvarchar(260) Filnamn på operativsystemet. Om databasen är värd hos en tillgänglighetsgrupp indikerar läsbar sekundär replikphysical_name filplatsen för den primära replikdatabasen. För rätt filplats för en läsbar sekundär databas, sök sys.sysaltfiles.
state tinyint Filstatus:

0 = ONLINE
1 = RESTORING
2 = RECOVERING
3 = RECOVERY_PENDING
4 = SUSPECT
5 = Identifierad endast för informationsändamål. Stöds inte. Framtida kompatibilitet garanteras inte.
6 = OFFLINE
7 = DEFUNCT
state_desc nvarchar(60) Beskrivning av filstatusen:

ONLINE
RESTORING
RECOVERING
RECOVERY_PENDING
SUSPECT
OFFLINE
DEFUNCT
För mer information, se Filtillstånd.
size int Nuvarande filstorlek, i 8-KB sidor.

0 = Ej tillämpligt
För en databassnapshot speglar storleken det maximala utrymme som snapshoten någonsin kan använda för filen.
För FILESTREAM-filgruppsbehållare speglar storleken den nuvarande använda storleken på containern.
max_size int Maximal filstorlek, i 8-KB sidor:

0 = Ingen tillväxt är tillåten.
-1 = Filen kan växa tills disken är full.
268435456 = Loggfilen kan växa till en maximal storlek på 2 TB.
För FILESTREAM-filgruppsbehållare återspeglar max_size containerns maximala storlek.
Databaser som uppgraderas med en obegränsad loggfilsstorlek rapporterar -1 för maximal storlek på loggfilen.
I Azure SQL Database kan summan av max_size värden för alla datafiler vara mindre än den maximala datastorleken för databasen. Använd DATABASEPROPERTYEX(DB_NAME(), 'MaxSizeInBytes') för att bestämma maximal datastorlek.
growth int 0 = Filen har fast storlek och växer inte.

Större än 0 = Filen växer automatiskt.
Om is_percent_growth = 0 är tillväxtökningen i enheter om 8-KB sidor, avrundat till närmaste 64 KB.
Om is_percent_growth = 1 uttrycks tillväxtökningen som en heltalsprocent.
is_media_read_only bit 1 = Filen är på skrivskyddat medium.

0 = Filen är på läs-skriv-media.
is_read_only bit 1 = Filen är markerad som skrivskyddad.

0 = Filen är märkt läs/skriv.
is_sparse bit 1 = Fil är en gles fil.

0 = Fil är inte en gles fil.
För mer information, se Visa storleken på den glesa filen i en databassnapshot (Transact-SQL).
is_percent_growth bit 1 = Filens tillväxt är en procentuell.

0 = Absolut tillväxtstorlek i sidor.
is_name_reserved bit 1 = Borttaget filnamn (name eller physical_name) kan endast återanvändas efter nästa loggbackup. När filer tas bort från en databas förblir de logiska namnen i ett reserverat tillstånd tills nästa loggbackup. Denna kolumn är endast relevant under full recovery-modellen och bulk-loggad recovery-modellen.
is_persistent_log_buffer bit 1 = Loggfilen är en persistent loggbuffert.

0 = Filen är inte en persistent loggbuffert.

För mer information, se Lägg till persistent loggbuffert i en databas.
create_lsn numerisk(25,0) Loggsekvensnummer (LSN) där filen skapades.
drop_lsn numerisk(25,0) LSN där filen lades ner.

0 = Filnamnet är inte tillgängligt för återanvändning.
read_only_lsn numerisk(25,0) LSN där filgruppen som innehåller filen ändrades från läs-/skriv-endast till skrivskyddad (senaste ändringen).
read_write_lsn numerisk(25,0) LSN där filgruppen som innehåller filen ändrades från skrivskyddad till läs-/skriv (senaste ändringen).
differential_base_lsn numerisk(25,0) Basen för differentialbackup. Datautsträckningar som ändras efter detta LSN ingår i en differentiell backup.
differential_base_guid uniqueidentifier Unik identifierare för basbackupen som en differentialbackup baseras på.
differential_base_time datetime Tid som motsvarar differential_base_lsn.
redo_start_lsn numerisk(25,0) LSN där nästa rollforward måste starta.

Är NULL omRESTORING = state inte eller .state = RECOVERY_PENDING
redo_start_fork_guid uniqueidentifier Unik identifierare för återställningsforken. Den first_fork_guid av nästa loggbackup som återställs måste matcha detta värde. Detta representerar filens aktuella tillstånd.
redo_target_lsn numerisk(25,0) LSN där den online-rullforwarden på denna fil kan upphöra.

Är NULL omRESTORING = state inte eller .state = RECOVERY_PENDING
redo_target_fork_guid uniqueidentifier Återställningsforken där filen kan återställas. Ihopparat med redo_target_lsn.
backup_lsn numerisk(25,0) LSN för den senaste datan eller differentiell backup av filen.

Anmärkning

När du tar bort eller bygger om stora index, eller tar bort eller förkortar stora tabeller, skjuter databasmotorn upp de faktiska siddelningarna och deras tillhörande lås tills transaktionen har genomförts. Uppskjutna släppåtgärder frigör inte allokerat utrymme omedelbart. Därför kanske de värden som returneras omedelbart sys.database_files efter att ett stort objekt tagits bort eller trunkerats kanske inte det faktiska tillgängliga diskutrymmet.

Permissions

Kräver medlemskap i offentlig roll. För mer information, se inställningar för metadatasynlighet.

Examples

Följande sats returnerar namn, filstorlek och mängden tomt utrymme för varje databasfil.

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

Hitta exempelfrågor med SQL Database, i Hantera filutrymme för databaser i Azure SQL Database. Du kan: