C# - Oracle - Cursores - Dúvida
06/02/2012
0
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.
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.
Vortice Sistemas
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)