[firebase-br] RES: Firebird 2.5 Super Classic - Comportamento Estranho ao UPDATE

Rodrigo Gomes da Silva rodrgomes em gmail.com
Seg Set 8 10:26:47 -03 2014


Não se preocupa com isso não... Este aumento como calaram é vestígio do
dado em uma transação anterior, e eventualmente o Firebird aproveita o
espaço não mais usado em outros dados.
O banco de dados sempre aumenta de tamanho físico, nunca diminui sem
backup/restore mas é pq uma vez alocado o espaço ele mantém e continua
utilizando estas páginas alocadas até não ter mais página alocada que
esteja sem uso.

Normalmente não se precisa de backup e restore constante.. Já tive cliente
com banco de 40gb que ficou mais de 2 anos sem restore funcionando sem prb
Em 08/09/2014 07:26, "Kurt Schneider" <kurt.schneider em controlsoft.com.br>
escreveu:

> Prezados,.
>
> Agradeço muito o esclarecimento de vocês.
>
> A questão passa a ser agora, algo diferente, e preocupante.
>
> Os dados que enviei para vocês são reais, de um banco em operação. Não
> posso considerar aquilo normal
> visto que 888 pages foram alocadas, mas nao liberadas (Garbage Colletion??)
>
> Ou seja, em um cliente com muitas atividades ocorrendo sobre a mesma
> tabela, como recalculo
> de Saldo - que é meu caso, terei que fazer backup - restore a cada 15 dias,
> caso contrário a base e a operação
> tendem a ficar lentos.
>
> Isso ja ocorreu com vcs.?
>
> Att
>
> 2014-09-06 3:41 GMT-03:00 W O <sistemas2000profesional em gmail.com>:
>
> > Kurt, el Firebird agrega una fila llamada "delta" cada vez que haces un
> > UPDATE o un DELETE. Eso es correcto, porque te permite hacer un ROLLBACK
> > pero va acumulando basura, esa basura solamente desaparece si haces un
> > SELECT a esa fila o un barrido (sweep) o un ciclo backup/restore.
> >
> > Tener basura dentro de una Base de Datos es normal y no debes preocuparte
> > demasiado por eso pero de vez en cuando debes eliminarla para que todas
> las
> > operaciones sean más rápidas.
> >
> > Para entender mejor lo que sucede puedes leer este artículo:
> >
> >
> >
> http://firebird21.wordpress.com/2013/09/11/entendiendo-sweep-y-garbage-collection/
> >
> > Saludos.
> >
> > Walter.
> >
> >
> > 2014-09-05 17:20 GMT-04:00 Moacir - Softin Sistemas <
> moacir em softin.com.br
> > >:
> >
> > > Kurt,
> > >
> > > O firebird trabalha com versionamento de registros, ou seja, a cada
> > > update/delete que você realiza, o mesmo
> > > Cria um novo registro.É o famoso garbage(lixo). Por isso, quando você
> > > realiza Backup/restore estes lixos são removidos fisicamente.
> > >
> > > Att,
> > > Moacir
> > >
> > >
> > >
> > > -----Mensagem original-----
> > > De: lista [mailto:lista-bounces em firebase.com.br] Em nome de Kurt
> > Schneider
> > > Enviada em: sexta-feira, 5 de setembro de 2014 18:10
> > > Para: FireBase
> > > Assunto: [firebase-br] Firebird 2.5 Super Classic - Comportamento
> > Estranho
> > > ao UPDATE
> > >
> > > Prezados
> > >
> > > Bom dia.
> > >
> > > Estou com uma duvida em relação ao processo ou resultado do Statistics
> do
> > > Firebird, no quesito PageSize (aumento do tamanho da Base de Dados).
> > >
> > >
> > > O servidor onde esta Rodando o Firebird 2.5 SuperClassic é um iCore7,
> 16
> > GB
> > > de RAM, dedicado somente para o Banco de Dados; O Exe da minha
> Aplicação
> > é
> > > em Delphi 2007,
> > > usando ADO e ADOQuery. Uso Windows Server 2012 Standart. O Arquivo
> > > firebird.conf não
> > > esta configurado ou " tunado " para esta máquina - esta usando o
> arquivo
> > > que vem junto na instalação. Sweep esta agendado par todo dia, as 02:00
> > da
> > > manhã
> > >
> > > A Base tem 1.3 GB (Backup e Restore feitos para o Teste que vou
> > > apresentar). O Start do teste
> > > se da com 447 Pages para a Tabela TB_CCLANCA, descrita abaixo, que
> possui
> > > 18.922 registros Fisicos.
> > >
> > > Pages Size MB (Size / 1024) Slots Fill Records
> > > 447 3.661.824 3.576 447 87 18.922
> > > T1 - 455 (5 Lcto) 3.727.360 3.640 455     88 18.922
> > > T2 - 459 (2 Lcto) 3.760.128 3.672 459   89 18.922
> > > T3 - 466 (6 Lcto) 3.817.472 3.728 466   90 18.922
> > > T4 - 469 (1 Lcto) 3.842.048 3.752 469   90 18.922
> > > T5 - 475 (1 Lcto) 3.874.816 3.784 473   90 18.922
> > > B_R - 477 3.661.824 3.576 447   87 18.922
> > >
> > >
> > > Fiz 5 Testes de UPDATE (T1 a T5), e somente update na tabela, trocando
> o
> > > conteúdo
> > > de 3 campos
> > >
> > > DataCompensacao
> > > Compensado
> > > Saldo
> > >
> > > Se vocês observarem, a cada T, o Banco vai alocando pages para os
> Update
> > e
> > > aumentando (Size) o tamanho da Tabela (Fisicamente), sendo que o numero
> > de
> > > registro não aumenta.
> > >
> > > Entendo que sejam necessário alocar recursos para as operações de
> Update,
> > > mas estes recursos não deveria ser liberados apos o fim do processo?
> > >
> > > Esclarecendo. A minha transação tem inicio e fim, (BeginTrans,
> > > CommitTrans), as querys são
> > > fechadas e destruídas com FreeAndNil e o exe, em tempo de execução, não
> > > ultrapassa os 11 MB. Mesmo ao fechar o EXE, nada muda.
> > >
> > > Realizei as manutenções indicadas, que contemplam SWEEP, Limbo
> > Transaction
> > > e afins.. e a tabela continuou com os mesmo Pages e Size. Só voltou ao
> > > normal quando foi realizado novo Backup - Restore (B_R - 477), voltando
> > > assim ao tamanho original (o que achei que deveria ocorrer após cada
> > > operação de Update).
> > >
> > > Aceito sugestões, indicações de artigos, livros, links... e opiniões
> dos
> > > colegas, visto que, ao meu entender, caso nao seja feito um backup
> > restore
> > > na base, e eu fizer apenas updates,a  mesma vai aumentar de tamanho em
> > > inserir sequer um registro.
> > >
> > > A titulo de comparação, no ultimo Backpu Restore desta base, Pages
> estava
> > > 1335, a após o Restore 447.
> > >
> > > Att
> > >
> > > --
> > >
> > > *Kurt Schneider*
> > > Gerente de Programação
> > > (49) 3329 1878 / (49) 9148-4809
> > >
> > > *www.controlsoft.com.br <http://www.controlsoft.com.br>*
> > > ______________________________________________
> > > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > > Para saber como gerenciar/excluir seu cadastro na lista, use:
> > > http://www.firebase.com.br/fb/artigo.php?id=1107
> > > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> > >
> > >
> > > ______________________________________________
> > > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > > Para saber como gerenciar/excluir seu cadastro na lista, use:
> > > http://www.firebase.com.br/fb/artigo.php?id=1107
> > > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> > >
> > ______________________________________________
> > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > Para saber como gerenciar/excluir seu cadastro na lista, use:
> > http://www.firebase.com.br/fb/artigo.php?id=1107
> > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> >
>
>
>
> --
>
> *Kurt Schneider*
> Gerente de Programação
> (49) 3329 1878 / (49) 9148-4809
>
> *www.controlsoft.com.br <http://www.controlsoft.com.br>*
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



Mais detalhes sobre a lista de discussão lista