O que é o Sweeping?
O Firebird utiliza uma arquitetura multi-geracional (MVCC), onde cada atualização ou deleção gera uma nova versão do registro. O Sweeping é o processo de "limpeza de lixo" que remove versões antigas que não são mais visíveis por nenhuma transação ativa.
O Intervalo de Sweeping
Por padrão, o Firebird vem configurado com um intervalo de 20.000 (Sweep Interval). Isso significa que, a cada 20.000 operações acumuladas entre a transação mais antiga e a mais recente, o banco inicia uma limpeza automática.
Exemplo: Desativando e Agendando
Para desativar o sweeping automático e realizá-lo manualmente via linha de comando:
# Desativar o automático (ajustar para zero)
gfix -housekeeping 0 /caminho/do/banco.fdb
# Executar o sweeping manual (ideal para horários de baixo uso)
gfix -sweep /caminho/do/banco.fdb
Conclusão
Um banco sem sweeping torna-se cada vez mais lento em operações de SELECT, pois o motor precisa percorrer cadeias de versões inúteis. O gerenciamento proativo deste processo é o que diferencia um sistema estável de um sistema que degrada com o tempo.