Boa tarde, pessoal!
Estou com um abacaxi e não sei como descascar…
Estou desenvolvendo um sistema utilizando o BD Firebird, versão 2.0.
Estava utilizando Statements para efetuar os SQL’s. Estava utilizando uma única conexão e não estava fechando nenhum Statement nem nenhum ResultSet.
Durante os testes, a performance do programa estava ótima, mas o consumo de memória do Firebird (serviço fbserver.exe) estava aumentando muito, até que em um momento, estourou a memória disponível!
Pesquisei bastante sobre o assunto e, depois de ler um pouco mais sobre o JDBC, todos recomendavam utilizar PreparedStatement, devido a segurança e performance. Alterei todos os DAO para utilizar PreparedStatement e passei a fechar todos os PreparedStatement e todos os ResultSet. Apesar de o consumo de memória do Firebird ainda estar alto, caiu bastante em comparação com minha primeira implementação. No entanto, a performance do programa despencou!!!
Alguém teria alguma sugestão de como contornar esses problemas, mantendo o consumo de memória do Firebird baixo (qualquer coisa abaixo de 10 MB está ótimo!), sem comprometer a performance da aplicação?
Desde já, muito obrigado.