Dúvidas de conexão ao banco de dados (Processamento pesado)

Olá pessoal,

meu sistema recebe 200 registros por segundo sem parar, e eu necessito incluir todos esses registros numa tabela e fazer uma atualização em outra tabela.
Até aí tudo bem, eu implementei um pool de conexões básico, e o meu programa faz isso bem.

A dúvida é: eu preciso fechar a conexão alguma vez no meu sistema ( sem contar a hora que eu finaliza-lo mesmo ), já que eu vou estar constantemente incluindo registros?

Eu gero um pool de 30 conexões, e cada uma delas com 2 preparedstatements, e vou revezando as conexões com cada registro, e eu tb estou fazendo processamento em batch. Ah detalhe em cada 500 registros de cada conexão eu dou um con.commit().

Bom, já fiz diversos testes, e quando eu não fecho nem a conexão e nem o preparedstatement, eu consigo incluir 2.000 registros por segundo no oracle, e fechando a conexão e o preparedstatement, isso caí muito a performance.

Grato

Cara, se alguém tiver de fechar a conexão esse alguém será o pool. Lembre-se que quem gerencia suas conexões é o pool. Você só pede a conexão e a usa como “bem entender” (exceto que vc não a deve fechar).

O pool acelera a “criação” da conexão - ela não é mais “criada” a toda hora que você pede por uma. O pool nada mais é que uma pilha de conexões já criadas e abertas pra facilitar sua vida (simplificando).

Se você fechar as conexões vindas do pool sua performance será até pior que não utilizar o pool pois você agora tem de executar, também, todo o código de gerenciamente interno do pool.