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

Wesley Oliveira wesley em rgsystem.com.br
Sex Dez 6 07:54:59 -03 2013


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





Mais detalhes sobre a lista de discussão lista