Compactação do banco FB

Firebird

23/08/2005

Olá!

Gostaria de saber se o Firebird tem algum recurso de compactação/otimização do banco de dados tal como possui o Access por exemplo, que possui em Ferramentas ´Compactar e corrigir banco de dados´.
Pergunto pois estou percebendo que mesmo sem dados em meu banco, pelo simples fato de ficar inserindo e execluindo registros, o arquivo do banco está se tornando maior.

Valeu
rtava


Rtava

Rtava

Curtidas 0

Respostas

Gandalf.nho

Gandalf.nho

23/08/2005

Se precisar fazer isso, basta efetuar um backup/restore.


GOSTEI 0
Rtava

Rtava

23/08/2005

E como executo isso via código? Ou seja, como uso esse recurso de dentro de meu programa?

Valeu!


GOSTEI 0
Afarias

Afarias

23/08/2005

|Gostaria de saber se o Firebird tem algum recurso de
|compactação/otimização do banco de dados tal como possui o Access
|por exemplo, que possui em Ferramentas ´Compactar e corrigir banco
|de dados´.

Com o Firebird vc não precisa ter essas mesmas preocupações como com o Access. Basicamente a única manutenção q vc tem q fazer de tempos em tempos é um Sweep.


|Pergunto pois estou percebendo que mesmo sem dados em meu banco,
|pelo simples fato de ficar inserindo e execluindo registros, o arquivo do
|banco está se tornando maior.

O arquivo ficar grande não é problema nenhum


|E como executo isso via código? Ou seja, como uso esse recurso de
|dentro de meu programa?

As ferramentas de linha de comando para manutenção da base são o GFIX e GBAK. Existem também componentes para realizar essas tarefas usando a services API, no IBX vc encontra o IBBackupServices e IBValidationService


T+


GOSTEI 0
Rtava

Rtava

23/08/2005

Olá afarias!

Você poderia me ajudar com a parte de implementação? Procurei coisas a respeito do GFIX e GBAK, mas não encontrei uma maneira de implementar isso via código no Delphi.

Valeu!


GOSTEI 0
Afarias

Afarias

23/08/2005

Vc pode simplesmente executar as linhas de comando (ShellExecute? CreateProcess?) ou usar os componentes citados (IBBackupService e IBValidationService)

depende... o q exatamente vc está fazendo?! Vê ai e na dúvida posta novamente.


T+


GOSTEI 0
Rtava

Rtava

23/08/2005

Estou fazendo o seguinte: Em meu BD tem uma tabela que uso para gravar registros temporários, apagando após algum tempo (horas). Reparei que, mesmo após apagar os registros da tabela temporária, o arquivo do BD não diminuia. Aliás, o contrário, sempre aumentava. Daí imaginei que tivesse o mesmo problema de compactação que o Access (por exemplo), sendo necessário fazer a correção do BD de tempos em tempos para eliminar os ´lixos´.

Uma outra coisa que preciso e que imagino que parte do material que você passou já resolva, é fazer a replicação do BD. Ou seja, em havendo uma base de dados em um determinado computador, preciso que o BD seja replicado para outro computador à medida em que for sendo editado, incluído ou excluído registros. Já vi estes recursos no SQL Server e no Oracle. Imagino que o FB também possua algo parecido ou igual... Você tem conhecimento disso?

Obrigado pela ajuda mais uma vez.


GOSTEI 0
Afarias

Afarias

23/08/2005

|Em meu BD tem uma tabela que uso para gravar registros temporários,
|apagando após algum tempo (horas). Reparei que, mesmo após apagar
|os registros da tabela temporária, o arquivo do BD não diminuia.

após apagar os registros faça um Sweep do banco. O arquivo não vai diminuir mas o espaço será reutilizado nos próximos inserts.


|Uma outra coisa que preciso e que imagino que parte do material que
|você passou já resolva, é fazer a replicação do BD.

Para replicação vc tem q usar uma ferramenta de replicação ou desenvolver uma (usando a API do IB/FB) ... existem algumas ferramentas ou componentes (IBO por exemplo) para isso:

http://www.ibphoenix.com/main.nfs?a=ibphoenix&page=ibp_repl_tools


T+


GOSTEI 0
POSTAR