sp_clean_db_file_free_space (Transact-SQL)

Aplica-se a:SQL Server

Remove informações residuais deixadas em páginas de banco de dados devido a rotinas de modificação de dados no SQL Server. sp_clean_db_file_free_space limpa todas as páginas em apenas um arquivo de um banco de dados.

Convenções de sintaxe de Transact-SQL

Sintaxe

sp_clean_db_file_free_space   
  [ @dbname = ] 'database_name'   
  , [ @fileid = ] 'file_number'   
  [ , [ @cleaning_delay = ] 'delay_in_seconds' ] [;]  

Argumentos

@dbname= 'database_name'
É o nome do banco de dados a ser limpo. dbname é sysname e não pode ser NULL.

@fileid= 'file_number'
É o ID do arquivo de dados a ser limpo. file_number é int e não pode ser NULL.

@cleaning_delay= 'delay_in_seconds'
Especifica um intervalo a ser atrasado entre a limpeza das páginas. Isso ajuda a reduzir o efeito no sistema de E/S. delay_in_seconds é int com um padrão de 0.

Valores do código de retorno

0 (êxito) ou 1 (falha)

Comentários

Exclui operações de uma tabela ou operações de atualização que fazem com que uma linha se mova pode liberar espaço imediatamente em uma página removendo referências à linha. No entanto, em determinadas circunstâncias, a linha pode permanecer fisicamente na página de dados como um registro fantasma. Os registros fantasmas são periodicamente removidos por um processo em segundo plano. Esses dados residuais não são retornados pelo Mecanismo de Banco de Dados em resposta a consultas. No entanto, em ambientes nos quais a segurança física dos dados ou dos arquivos de backup está em risco, você pode usar sp_clean_db_file_free_space para limpar esses registros fantasmas. Para executar essa operação para todos os arquivos de banco de dados de uma só vez, use sp_clean_db_free_space (Transact-SQL).

O período de tempo necessário para executar sp_clean_db_file_free_space depende do tamanho do arquivo, do espaço livre disponível e da capacidade do disco. Como a execução pode afetar significativamente a sp_clean_db_file_free_space atividade de E/S, recomendamos que você execute esse procedimento fora do horário normal de operação.

Antes de executar sp_clean_db_file_free_spaceo , recomendamos que você crie um backup completo do banco de dados.

O procedimento armazenado sp_clean_db_free_space relacionado limpa todos os arquivos no banco de dados.

Permissões

Requer associação à db_owner função de banco de dados.

Exemplos

O exemplo a seguir limpa todas as informações residuais do arquivo de dados primário do AdventureWorks2022 banco de dados.

USE master;  
GO  
EXEC sp_clean_db_file_free_space @dbname = N'AdventureWorks2022', @fileid = 1;  

Veja também

Procedimentos armazenados do mecanismo de banco de dados (Transact-SQL)
Guia do Processo de Limpeza de Fantasmas
sp_clean_db_free_space (Transact-SQL)