Array
(
)

C# - Oracle - Cursores - Dúvida

Vortice Sistemas
   - 06 fev 2012

Salve galera.
Estou com uma dúvida aqui que é a seguinte, tenho uma aplicação em C# com Oracle que importa registros de um banco para outro, ela conecta-se no banco Y e para ler a informações e conecta-se no banco X para gravar as mesmas, até ai tudo bem.
Só que essa aplicação roda vários serviços, ou seja, ao mesmo tempo que ela esta rodando o processo de importação ela abre uma outra conexão com o banco X para rodar um serviço que acumula valores de clientes. Isso funciona por que usamos Threads.
Quando rodamos os dois serviços juntos pela primeira vez começaram a dar erros, lendo sobre o problema na internet adicionamos o parâmetro “Oci Session Pooling = true” na string de conexão e resolveu. E agora esta funcionando normal.
Minha dúvida é a seguinte, monitorando as Sessions pelo PL/SQL vi que o “opened cursors cumulative” chegou a mais de 500 mil e o “opened cursors current” chega a 6 no máximo.
Não entendo muito da Engine do banco, então queria saber:
- se é normal a cada SQL que faço ele abrir um cursor e fechar?
- Se só preciso me preocupar com o volume dos que estão abertos juntos?
Digo isso por que me falaram que tem como eu reaproveitar cursor pra não ficar criando um a cada SQL executado.
Então acho que essa dúvida seria melhor respondida por um DBA ou algo assim.
Fico no aguardo, abraços.