[firebase-br] delete com exclusao fisica

Eduardo Jedliczka eduardo em gerasoftinfo.com.br
Seg Nov 1 10:20:18 -03 2004


Ok, muito bom o seu e-mail, muito claro e correto, parabéns.

Mas isto não irá diminuir o tamanho do arquivo físico da base de dados, para
reduzir o tamanho do arquivo somente fazendo backup e restore.

[s]

=====================
Eduardo Jedliczka
GeraSoft Informática
Apucarana - PR
=====================
----- Original Message ----- 
From: "Carlos Sato" <cansato em ig.com.br>
To: <lista em firebase.com.br>
Sent: Monday, November 01, 2004 10:48 AM
Subject: Re: [firebase-br] delete com exclusao fisica


> Segundo os manuais do Interbase, existe sim uma outra maneira sem ser pelo
> Backup/Restore.
>
> Na verdade o Firebird/Interbase já faz isso de forma automática, através
de
> sua função de "sweeping" que resolve o problema de transações "em aberto"
e
> elimina por conseqüencia todo o "lixo" do banco de dados.
>
> Só que essa forma automática ocorre após terem decorridos um determinado
> número de transações (padrão = 20000) entre uma "Interesting Transaction"
e
> outra. Essa "Interesting Transaction" é uma transação que não foi
completada
> por um Commit ou um Rollback. Quando ocorre a primeira vez esse problema,
o
> Firebird/Interbase marca essa transação como OIT (Oldest Interesting
> Transaction) e ao ocorrer a próxima, verifica se a diferença entre elas é
> maior que o intervalo determinado, no padrão 20000 transações. Caso seja,
o
> servidor inicia o processo de "sweeping". Importante: o banco de dados não
> precisa estar em modo exclusivo, os usuários podem estar conectados.
>
> É importante entender que essa diferença pode nunca ser alcançada se todas
> as transações após o OIT sejam terminadas corretamente, ou seja, se não
> ocorrer uma nova "Interesting Transaction", o "sweeping" não vai ser
> executado.
>
> Você pode alterar o intervalo de transações em que o banco de dados vai
ser
> limpo:
>
> gfix -h 10000 seu_banco.fdb  //diminui para 10000 o intervalo de
transações
>
> Ou pode desativar o "sweeping" e para ativá-lo manualmente:
>
> gfix -h 0 seu_banco.fdb    // desabilita
>
> gfix -s seu_banco.fdb    // executa o "sweeping"
>
> []s
> Carlos Sato
>
>
> "Maglan Cristiano Diemer" <maglan em univates.br>
> escreveu na mensagem news:418282B2.3050405 em univates.br...
> Pessoal,
>
> Tenho uma tabela no GDB que possui um
> campo BLOB que armazena arquivos JPG, TIFF, etc.
>
> Eventualmente os usuarios apagam registros
> desta tabela (o comando é delete from ...).
>
> Mas, o arquivo GDB não diminui de tamanho
> até porque esse registro não é excluido fisicamente.
>
> Há maneira de diminuir o tamanho do GDB no momento
> que exclui um registro (ou fazer um exclusao fisica).
>
> Eu sei que com Backup/Restore eu resolvo o problema.
> Existe alguma maneira sem Backup/Restore ?
>
> Maglan
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> Para editar sua configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>
>
>
>
>


----------------------------------------------------------------------------
----


______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
Para editar sua configuração na lista, use o endereço
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br





Mais detalhes sobre a lista de discussão lista