Partilhar via


sys.database_files (Transact-SQL)

Aplica-se a:Banco de Dados SQL dodo AzureInstância Gerenciada SQL do Azuredo Azure Synapse Analyticsdo Analytics Platform System (PDW)Banco de Dados SQL no Microsoft Fabric

Contém uma linha por ficheiro de uma base de dados tal como armazenada na própria base de dados. Esta é uma vista por base de dados.

Nome da coluna Tipo de dados Description
file_id int ID do ficheiro dentro da base de dados.
file_guid uniqueidentifier GUID para o ficheiro.

NULL = A base de dados foi atualizada a partir de uma versão anterior do SQL Server (Válido para SQL Server 2005 e versões anteriores).
type tinyint Tipo de ficheiro:

0 = Linhas
1 = Log
2 = FILESTREAM
3 = Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
4 = Texto completo
type_desc Nvarchar(60) Descrição do tipo de ficheiro:

ROWS
LOG
FILESTREAM
FULLTEXT
data_space_id int O valor pode ser zero ou superior a zero. Um valor de 0 representa o ficheiro de registo da base de dados, e um valor maior que zero representa o ID do grupo de ficheiros onde este ficheiro de dados está armazenado.
name sysname Nome lógico do ficheiro na base de dados.
physical_name Nvarchar(260) Nome do ficheiro do sistema operativo. Se a base de dados estiver alojada por uma réplica secundária legível do grupo de disponibilidade, indica physical_name a localização do ficheiro da base de dados réplica primária. Para a localização correta do ficheiro de uma base de dados secundária legível, consulte sys.sysaltfiles.
state tinyint Estado do processo:

0 = ONLINE
1 = RESTORING
2 = RECOVERING
3 = RECOVERY_PENDING
4 = SUSPECT
5 = Identificado apenas para fins informativos. Não suportado. A compatibilidade futura não é garantida.
6 = OFFLINE
7 = DEFUNCT
state_desc Nvarchar(60) Descrição do estado do ficheiro:

ONLINE
RESTORING
RECOVERING
RECOVERY_PENDING
SUSPECT
OFFLINE
DEFUNCT
Para mais informações, consulte os Estados do Processo.
size int Tamanho atual do ficheiro, em páginas de 8 KB.

0 = Não aplicável
Para um snapshot de base de dados, o tamanho reflete o espaço máximo que o snapshot pode alguma vez usar para o ficheiro.
Para contentores de grupos de ficheiros FILESTREAM, o tamanho reflete o tamanho atualmente utilizado do contentor.
max_size int Tamanho máximo do ficheiro, em páginas de 8 KB:

0 = Não é permitido crescimento.
-1 = O ficheiro pode crescer até o disco estar cheio.
268435456 = O ficheiro de registo pode crescer até um tamanho máximo de 2 TB.
Para contentores de grupos de ficheiros FILESTREAM, max_size reflete o tamanho máximo do contentor.
Bases de dados que são atualizadas com um tamanho ilimitado do ficheiro de registo reportam -1 o tamanho máximo do ficheiro de registo.
No Azure SQL Database, a soma dos max_size valores de todos os ficheiros de dados pode ser inferior ao tamanho máximo dos dados da base de dados. Use DATABASEPROPERTYEX(DB_NAME(), 'MaxSizeInBytes') para determinar o tamanho máximo dos dados.
growth int 0 = O ficheiro tem tamanho fixo e não cresce.

Maior que 0 = Ficheiro cresce automaticamente.
Se is_percent_growth = 0, o incremento de crescimento é em unidades de páginas de 8 KB, arredondado para os 64 KB mais próximos.
Se is_percent_growth = 1, o incremento de crescimento é expresso como uma percentagem de números inteiros.
is_media_read_only bit 1 = O ficheiro está em suporte apenas de leitura.

0 = O ficheiro está em suporte de leitura-escrita.
is_read_only bit 1 = O ficheiro está marcado como apenas leitura.

0 = O ficheiro está marcado como lido/escrito.
is_sparse bit 1 = O ficheiro é um ficheiro esparso.

0 = O ficheiro não é um ficheiro esparso.
Para mais informações, consulte Ver o Tamanho do Ficheiro Esparso de um Snapshot de Base de Dados (Transact-SQL).
is_percent_growth bit 1 = O crescimento do ficheiro é uma percentagem.

0 = Tamanho absoluto de crescimento em páginas.
is_name_reserved bit 1 = O nome do ficheiro perdido (name ou physical_name) só é reutilizável após a próxima cópia de segurança do log. Quando os ficheiros são retirados de uma base de dados, os nomes lógicos permanecem num estado reservado até à próxima cópia de segurança do registo. Esta coluna é relevante apenas no modelo de recuperação completo e no modelo de recuperação em bloco.
is_persistent_log_buffer bit 1 = O ficheiro de log é um buffer de log persistente.

0 = O ficheiro não é um buffer de log persistente.

Para mais informações, consulte Adicionar buffer de registo persistente a uma base de dados.
create_lsn numérico(25,0) Número de sequência de registo (LSN) em que o ficheiro foi criado.
drop_lsn numérico(25,0) LSN, onde o ficheiro foi descartado.

0 = O nome do ficheiro não está disponível para reutilização.
read_only_lsn numérico(25,0) LSN, em que o grupo de ficheiros que contém o ficheiro mudou de leitura/escrita para apenas leitura (alteração mais recente).
read_write_lsn numérico(25,0) LSN em que o grupo de ficheiros que contém o ficheiro mudou de apenas leitura para leitura/escrita (alteração mais recente).
differential_base_lsn numérico(25,0) Base para reservas diferenciais. As extensões de dados alteradas após este LSN são incluídas numa cópia de segurança diferencial.
differential_base_guid uniqueidentifier Identificador único do backup base em que se baseia um backup diferencial.
differential_base_time datetime Tempo correspondente a differential_base_lsn.
redo_start_lsn numérico(25,0) LSN, onde deve começar o próximo roll-forward.

É NULL a menos que state = RESTORING ou state = RECOVERY_PENDING.
redo_start_fork_guid uniqueidentifier Identificador único do fork de recuperação. O first_fork_guid do próximo backup de log restaurado deve corresponder a este valor. Isto representa o estado atual do ficheiro.
redo_target_lsn numérico(25,0) LSN, onde o avanço online deste ficheiro pode parar.

É NULL a menos que state = RESTORING ou state = RECOVERY_PENDING.
redo_target_fork_guid uniqueidentifier O fork de recuperação onde o ficheiro pode ser recuperado. Emparelhado com redo_target_lsn.
backup_lsn numérico(25,0) O LSN dos dados mais recentes ou backup diferencial do ficheiro.

Observação

Quando elimina ou reconstrói grandes índices, ou elimina ou trunca tabelas grandes, o Motor de Base de Dados adia as reales distribuições de páginas, e os seus bloqueios associados, até depois de a transação ser comprometida. As operações de lançamento diferido não libertam imediatamente o espaço alocado. Portanto, os valores devolvidos imediatamente sys.database_files após a queda ou truncação de um objeto grande podem não refletir o espaço real disponível em disco.

Permissions

Requer adesão à função pública de . Para obter mais informações, consulte Configuração de visibilidade de metadados.

Examples

A seguinte instrução devolve o nome, o tamanho do ficheiro e a quantidade de espaço vazio para cada ficheiro da base de dados.

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

Encontre consultas de exemplo usando a Base de Dados SQL, em Gerir espaço de ficheiros para bases de dados no Azure SQL Database. É possível: