[firebase-br] RES: RES: Consumo de memória muito Alto (Não libera)

Frederico Godoi frederico.godoi em gmail.com
Sex Dez 6 10:26:48 -03 2013


Eu uso uma conexão persistente com o FIBPlus. Meu sistema ainda é Cliente -
Servidor e não com o conceito de provider.
Então essa conexão é ativa o tempo todo e ela tem um Transaction ligado a
ela o tempo todo.

Quando faço consultas, não dou um commit. Senão eu mato essa conexão
persistente.
Eu faço um commitretaining.

O "Dataset" eu dou close, free e nil, assim percebi que libero memória
"local" do aplicativo.
Mas sem dar o commit realmente estou com medo de não estar resolvendo no
servidor o consumo de memória e transações do Firebird.

Alguém poderia me dar umas dicas ?

Obrigado

Frederico


2013/12/6 Wesley Oliveira <wesley em rgsystem.com.br>

> As consultas feitas pelo nosso servidor usa um TSQLQuery com
> DataSetProvider
> pra retornar pro cliente os registros.
>
> O componente de conexão é um TDBExpress que herda de TSQLConnection e só
> tem
> algumas coisinhas a mais que não faz diferença pra isso não.
>
> Antes de iniciar a consulta, eu dou um StartTransaction e no final um
> Conexao.Commit.
> O DataSetProvider e a TSQLQuery são destruídos com FreeAndNil.
>
> Att.
>
> Wesley Oliveira
> Programador de Sistemas de Informação
> RG System Informática
> Fone:     +55 (27) 3727-1127
> Celular:  +55 (27) 99606-0038
>
>
> -----Mensagem original-----
> De: lista [mailto:lista-bounces em firebase.com.br] Em nome de Frederico
> Godoi
> Enviada em: quinta-feira, 5 de dezembro de 2013 17:13
> Para: FireBase
> Assunto: Re: [firebase-br] RES: Consumo de memória muito Alto (Não libera)
>
> Como você fez pra liberar as Queries?
>
>
>
>
> 2013/12/5 Wesley Oliveira <wesley em rgsystem.com.br>
>
> > Obrigado pessoal!
> >
> > Analisamos nossa rotina direitinho e vimos que não era ela o problema.
> > O problema eram as consultas antigas do sistema que utilizavam um
> > método errado. Não abria transação e não liberava as queries criadas.
> > Isso fazia tanto a memória do Firebird bater picos de 200MB pra gerar
> > uma turma e não liberar memória, quanto a memória utilizada pelo
> > sistema subir e não liberar também, ficando acima de 50MB pra uma
> > turma.
> >
> > Após os ajustes, a memória do FB para em 11,9MB.. De vez em quando
> > sobe pra 25MB mas logo volta pra 11... e a memória utilizada pelo
> > sistema também ficou bem abaixo do que estava antes!
> >
> > Obrigado pelas dicas!
> > Att.
> >
> > Wesley Oliveira
> > Programador de Sistemas de Informação
> > RG System Informática
> > Fone:     +55 (27) 3727-1127
> > Celular:  +55 (27) 99606-0038
> >
> > -----Mensagem original-----
> > De: lista [mailto:lista-bounces em firebase.com.br] Em nome de W O
> > Enviada em: quarta-feira, 4 de dezembro de 2013 23:33
> > Para: FireBase
> > Assunto: Re: [firebase-br] Consumo de memória muito Alto (Não libera)
> >
> > ¿Todos tus SELECTs finalizan con un COMMIT?
> >
> > Si no es así, podrías continuar teniendo transacciones abiertas las
> > cuales por supuesto consumen memoria.
> >
> > Saludos.
> >
> > Walter.
> >
> >
> >
> >
> > 2013/12/4 Wesley Oliveira <wesley em rgsystem.com.br>
> >
> > > Olá pessoal!
> > >
> > >
> > >
> > > Correndo o risco de parecer bobo, mas uma questão está me
> > > perturbando essa
> > > semana:
> > >
> > >
> > >
> > > Nosso sistema é baseado num Servidor DataSnap com Firebird 2.5
> > SuperServer.
> > >
> > > Ao gerar os boletins dos alunos de uma turma, por exemplo, o sistema
> > > dispara várias funções entre servidor/banco de dados. Algumas stored
> > > procedures são executadas, tabelas temporárias são alimentadas e
> > > consultadas pra depois serem esvaziadas e por aí vai. Tudo comandado
> > > pelo servidor da aplicação.
> > >
> > >
> > >
> > > Ao iniciar o processo, o FB está consumindo 22MB de memória e, para
> > > uma turma de 30 alunos por exemplo, ao final da execução, o consumo
> > > está beirando os 250MB!
> > >
> > > Sim, são rotinas pesadas, vários registros pra cada aluno em
> > > diversas tabelas, SUMS, COUNTS, tem de tudo nessa rotina...
> > >
> > >
> > >
> > > Aí eu penso: Quando acabar, toda essa memória será liberada, certo?
> > > Errado... só libera quando encerra o servidor do sistema.... E nesse
> > > fim de ano, alguns clientes estão gerando os boletins de TODAS as
> > > turmas várias vezes por dia... Imagina o tanto que isso tá
> > > consumindo dos pobres servidores, certo?
> > >
> > >
> > >
> > > Então eu pergunto: Por que isso acontece?
> > >
> > >
> > >
> > > Eu utilizo para as consultas ao BD o TDBXCommand com TDBXReader do
> > > Delphi e, sempre que um command ou um reader é criado, é destruído
> > > ao final da “participação” dele na rotina. Já dei Free, FreeAndNil e
> > > nada libera a memória...
> > >
> > >
> > >
> > > Alguma boa alma poderia me dar alguma dica?
> > >
> > > Wesley Oliveira
> > > Programador de Sistemas de Informação
> > >
> > > RG System Informática
> > > Fone:     +55 (27) 3727-1127
> > > Celular:  +55 (27) 99606-0038
> > >
> > >
> > >
> > > ______________________________________________
> > > 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
> >
>
>
>
> --
> Frederico Godoi
> ______________________________________________
> 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
>



-- 
Frederico Godoi



Mais detalhes sobre a lista de discussão lista