Partilhar via


sp_clean_db_free_space (Transact-SQL)

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_free_space limpa todas as páginas de todos os arquivos do banco de dados.

Ícone de vínculo de tópico Convenções da sintaxe Transact-SQL

Sintaxe

sp_clean_db_free_space 
[ @dbname ] = 'database_name' 
[ , [ @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.

  • [ @cleaning\_delay= ] 'delay_in_seconds'
    Especifica um intervalo de atraso 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 de código de retorno

0 (êxito) ou 1 (falha)

Comentários

As operações de exclusão de uma tabela ou as operações de atualização que fazem com que uma linha seja movida podem liberar espaço imediatamente em uma página removendo as referências para a linha. No entanto, em certas circunstâncias, a linha pode permanecer fisicamente na página de dados como um registro fantasma. Os registros fantasmas são removidos periodicamente por um processo em segundo plano. Esses dados residuais não são retornados pelo Mecanismo de Banco de Dados em resposta às consultas. No entanto, em ambientes onde a segurança física dos dados ou dos arquivos de backup está em risco, é possível usar sp_clean_db_free_space para limpar esses registros fantasmas.

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

Antes da execução de sp_clean_db_free_space, é recomendável criar um backup completo do banco de dados.

O procedimento armazenado sp_clean_db_file_free_space relacionado pode limpar um único arquivo.

Permissões

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

Exemplos

O exemplo a seguir limpa todas as informações residuais do banco de dados AdventureWorks2012.

USE master
GO
EXEC sp_clean_db_free_space 
@dbname = N'AdventureWorks2012' ;

Consulte também

Referência

Procedimentos armazenados do Mecanismo de Banco de Dados (Transact-SQL)