Banco de dados do Firebird continua ficando maior
-
20-09-2019 - |
Pergunta
Este é interessante para mim - apesar do título quase insano. Eu uso o Firebird há muito tempo, mas até recentemente notei um comportamento interessante.
Estou usando o Firebird 1.5 incorporado e notei que, se eu encher o banco de dados cheio de blobs (digamos 10MB no valor), o tamanho do banco de dados aumenta. Eu posso excluir todos os campos no banco de dados e o tamanho do arquivo do banco de dados permanece em seu tamanho expandido. Atualmente, está em 20 MB e está completamente vazio.
Eu sei que o Firebird tem isso embutido em sua arquitetura (para indexação rápida, problemas de velocidade etc.), mas sempre pensei que diminuiria de volta ao seu padrão original de ~ 2Mb.
Alguém tem alguma sugestão para 'desviar' o tamanho do arquivo? A razão é que essa é uma questão consciente do espaço. Se eu tivesse toneladas de espaço para trabalhar, não me importaria. No entanto, esse não é o caso, e eu preciso que as coisas sejam o mais ideais possível
Obrigado!
Solução
A única maneira de libertar o espaço não utilizado em um banco de dados Firebird é fazer um backup e depois uma restauração imediata desse backup (referência: Faq Firebird).
Aqui é uma boa explicação técnica de por que isso é assim.
Observe que o Firebird reutilizará o espaço atualmente não utilizado - ou seja. Se você colocar outros 10 MB de blobs agora, o banco de dados não deve crescer para 30 MB.