sys.database_files (Transact-SQL)
Si applica a: SQL Server Azure SQL Database
Istanza gestita di SQL di Azure Azure Synapse
Analytics Analytics
Platform System (PDW)
SQL Endpoint in Microsoft Fabric Warehouse in Microsoft Fabric
Contiene una riga per ogni file di un database archiviata nel database stesso. Si tratta di una vista specifica per ogni database.
Nome colonna | Tipo di dati | Descrizione |
---|---|---|
file_id | int | ID del file all'interno del database. |
file_guid | uniqueidentifier | GUID del file. NULL = Il database è stato aggiornato da una versione precedente di SQL Server (valida per SQL Server 2005 e versioni precedenti). |
type | tinyint | Tipo di file: 0 = Righe 1 = Log 2 = FILESTREAM 3 = Identificato solo a scopo informativo. Non supportata. Non è garantita la compatibilità con le versioni future. 4 = Full-text |
type_desc | nvarchar(60) | Descrizione del tipo di file: ROWS LOG FILESTREAM FULLTEXT |
data_space_id | int | Il valore può essere uguale o maggiore di 0. Un valore uguale a 0 rappresenta il file di log del database, mentre un valore maggiore di 0 rappresenta l'ID del filegroup in cui è archiviato il file di dati. |
nome | sysname | Nome logico del file nel database. |
physical_name | nvarchar(260) | Nome del file del sistema operativo. Se il database è ospitato da una replica secondaria leggibile del gruppo di disponibilità, physical_name indica il percorso del file del database di replica primaria. Per il percorso del file corretto di un database secondario leggibile, eseguire query su sys.sysaltfiles. |
state | tinyint | Stato del file: 0 = ONLINE 1 = RESTORING 2 = RECOVERING 3 = RECOVERY_PENDING 4 = SUSPECT 5 = Identificato solo a scopo informativo. Non supportata. Non è garantita la compatibilità con le versioni future. 6 = OFFLINE 7 = DEFUNCT |
state_desc | nvarchar(60) | Descrizione dello stato del file: ONLINE RESTORING RECOVERING RECOVERY_PENDING SUSPECT OFFLINE DEFUNCT Per altre informazioni, vedere Stati del file. |
size | int | Dimensioni del file in pagine da 8 KB. 0 = Non applicabile Per uno snapshot del database, il valore size corrisponde allo spazio massimo utilizzabile dallo snapshot per il file. Per i contenitori filegroup FILESTREAM, le dimensioni riflettono le dimensioni correnti usate del contenitore. |
max_size | int | Dimensioni massime del file espresse in pagine da 8 KB. 0 = Non è consentito alcun aumento. -1 = La dimensione del file aumenterà finché il disco è pieno. 268435456 = La dimensione del file di log aumenterà fino al valore massimo di 2 TB. Per i contenitori filegroup FILESTREAM, max_size riflette le dimensioni massime del contenitore. Si noti che i database aggiornati con dimensioni illimitate del file di log segnalano -1 per la dimensione massima del file di log. In Azure SQL Database la somma dei valori di max_size per tutti i file di dati può essere minore delle dimensioni massime dei dati per il database. Usare DATABASEPROPERTYEX(DB_NAME(), 'MaxSizeInBytes') per determinare le dimensioni massime dei dati. |
Crescita | int | 0 = La dimensione del file è fissa e non aumenterà. >0 = Il file crescerà automaticamente. Se is_percent_growth = 0, il valore dell'aumento di dimensioni è espresso in unità di pagine da 8 KB, con arrotondamento ai 64 KB successivi. Se is_percent_growth = 1, il valore dell'aumento di dimensioni è espresso come percentuale (numero intero). |
is_media_read_only | bit | 1 = Il file si trova in un supporto con accesso in sola lettura. 0 = Il file è memorizzato in un supporto di lettura/scrittura. |
is_read_only | bit | 1 = Il file è contrassegnato per l'accesso in sola lettura. 0 = Il file è contrassegnato in lettura/scrittura. |
is_sparse | bit | 1 = il file è di tipo sparse. 0 = il file non è di tipo sparse. Per altre informazioni, vedere Visualizzare le dimensioni del file sparse di uno snapshot del database (Transact-SQL). |
is_percent_growth | bit | 1 = L'aumento del file è una percentuale. 0 = Dimensione dell'aumento assoluto in pagine. |
is_name_reserved | bit | 1 = Il nome del file eliminato (name o physical_name) può essere riutilizzato solo dopo il successivo backup del log. Quando si eliminano i file da un database, i nomi logici rimangono in stato riservato fino al successivo backup del log. Questa colonna è rilevante solo nel modello di recupero con registrazione completa e nel modello di recupero con registrazione minima delle operazioni bulk. |
create_lsn | numeric(25,0) | Numero di sequenza del file di log (LSN) in corrispondenza del quale il file è stato creato. |
drop_lsn | numeric(25,0) | Numero di sequenza del file di log (LSN) in corrispondenza del quale il file è stato eliminato. 0 = Il nome del file non è disponibile per il riutilizzo. |
read_only_lsn | numeric(25,0) | Numero di sequenza del file di log (LSN) in corrispondenza del quale la modalità del filegroup contenente il file è passata da lettura/scrittura a sola lettura (la modifica più recente). |
read_write_lsn | numeric(25,0) | Numero di sequenza del file di log in corrispondenza del quale la modalità del filegroup contenente il file è passata da sola lettura a lettura/scrittura (la modifica più recente). |
differential_base_lsn | numeric(25,0) | Base per backup differenziali. Gli extent di dati modificati dopo tale LSN verranno inclusi in un backup differenziale. |
differential_base_guid | uniqueidentifier | Identificatore univoco del backup di base in base al quale verrà eseguito un backup differenziale. |
differential_base_time | datetime | Tempo corrispondente a differential_base_lsn. |
redo_start_lsn | numeric(25,0) | Numero di sequenza del file di log in corrispondenza del quale deve iniziare l'esecuzione del successivo rollforward. NULL a meno che state = RESTORING o state = RECOVERY_PENDING. |
redo_start_fork_guid | uniqueidentifier | Identificatore univoco del fork di recupero. Il valore first_fork_guid del successivo backup del log ripristinato deve corrispondere a questo valore. Rappresenta lo stato corrente del file. |
redo_target_lsn | numeric(25,0) | Numero di sequenza del file di log (LSN) in corrispondenza del quale è possibile arrestare l'esecuzione del rollforward online sul file. NULL a meno che state = RESTORING o state = RECOVERY_PENDING. |
redo_target_fork_guid | uniqueidentifier | Fork di recupero in corrispondenza del quale è possibile recuperare il file. Abbinato a redo_target_lsn. |
backup_lsn | numeric(25,0) | Numero di sequenza del file di log del backup dei dati o del backup differenziale del file più recente. |
Nota
Quando si eliminano o ricompilano indici di grandi dimensioni o si eliminano tabelle di grandi dimensioni, il motore di database deferirà le deallozioni di pagina effettive e i relativi blocchi associati, fino a quando non si esegue il commit delle transazioni. Le operazioni di eliminazione posticipate non rendono immediatamente disponibile lo spazio allocato. Pertanto, i valori restituiti da sys.database_files subito dopo l'eliminazione o il troncamento di un oggetto di grandi dimensioni potrebbero non rispecchiare lo spazio su disco effettivamente disponibile.
Autorizzazioni
È richiesta l'appartenenza al ruolo public . Per altre informazioni, vedere Metadata Visibility Configuration.
Esempi
L'istruzione seguente restituisce il nome, le dimensioni del file e la quantità di spazio vuoto per ogni file di database.
SELECT name, size/128.0 FileSizeInMB,
size/128.0 - CAST(FILEPROPERTY(name, 'SpaceUsed') AS int)/128.0
AS EmptySpaceInMB
FROM sys.database_files;
Trovare query di esempio usando database SQL, in Gestire spazio file per i database in Azure SQL Database. È possibile:
- Eseguire query su un singolo database per informazioni sullo spazio di archiviazione.
- Eseguire una query su un pool elastico per informazioni sullo spazio di archiviazione.
Passaggi successivi
Altre informazioni sui concetti correlati sono disponibili negli articoli seguenti: