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

Wesley Oliveira wesley em rgsystem.com.br
Qua Dez 4 14:52:50 -03 2013


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

 




Mais detalhes sobre a lista de discussão lista