Última modificação em: 01/08/2022

Sweep Automático

"Sweep" é um recurso que limpa registros lixo do banco de dados. Quando um registro é excluído (DELETE) ou atualizado (UPDATE) o Firebird mantém uma cópia antiga do registro no arquivo do banco de dados (BANCO.FDB), ainda que esta cópia não seja visualizada ao fazer o SELECT no banco de dados.

Como a remoção de dados do arquivo consome tempo de processamento considerável, o Firebird não o faz constantemente, mas sim, em intervalos. Se a instalação padrão do BANCO.FDB for de 20.000 registros, quando este número é atingido o banco de dados executa automaticamente um "Sweep" (limpa o lixo).

Como o banco de dados não escolhe a hora mais adequada para executar o "Sweep", muitas vezes o processo é executado exatamente quando o usuário está a pleno uso do acesso ao banco de dados. Quando isto ocorre, o banco aumenta o tempo de resposta tornando perceptível ao usuário.

Em instalações de uso intenso, uma possibilidade é desabilitar este processo automático e passar a fazê-lo em momento programados. Ex: quando liga a máquina (servidor), ou ainda, programada para executar fora do expediente.

O Sweep é zerado automaticamente quando são atingidos determinados números pré-configurados, no caso, 20.000 transações.

Para executar ou realizar o agendamento do "sweep" no Windows, o usuário deve acessar o aplicativo "nSQL.exe", no menu "Conexão" e selecionar a opção "Sweep".

OBS: executar o aplicativo "nSQL.exe" como "Administrador do Windows".

Na janela aberta haverá três opções:

  • Fazer sweep (esta opção executa o "Sweep" (limpa o lixo)
  • Agendar sweep (esta opção agenda uma tarefa de execução do "Sweep")
  • Zerar sweep interval (esta opção define o "Sweep" com valor zero)

Por padrão, o banco de dados está definido para executar automaticamente o sweep sempre que chegar a um total de 20000 transações, onde o usuário pode clicar em zerar sweep interval, definindo esse valor para 0 e em seguida clicar em agendar sweep para que a tarefa seja agendada no Windows, o qual o usuário poderá definir datas e horários para que o processo seja executado.

Ao zerar o intervalo do"Sweep" o valor passa a ser zero.

Para consultar o intervalo do "Sweep" basta executar, qualquer módulo do sistema, a rotina localizada no menu Utilitários \ Banco de dados \ Informações de Conexão, conforme imagem abaixo:

Ao criar um agendamento de tarefa para execução do "Sweep" o usuário deve observar algumas opções na configuração da tarefa:

  • Desmarcar a opção "Executar somente se conectado"
  • Definir a periodicidade, data e hora e intervalo de repetição
  • Desmarcar a opção "Interromper a tarefa se ela for executada por:"

CCQ Blog
© Questor Sistemas 2025