Logo

Firebird: Sweeping

Mantendo a performance através da limpeza de versões de registros.

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.

Nota de Performance: Em bancos de alta transacionalidade, o sweeping automático pode causar "travamentos" repentinos. A recomendação profissional é desativar o automático e agendar uma tarefa via Crontab ou Task Scheduler.

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.

← Voltar para Índice Firebird