Bom dia a todos,

   Acabamos de realizar um migração de banco de dados 9i para 10g, 
trabalhando em Grid com 2 nós.
   Existe uma procedure no banco que executa apenas um cursor de 
pesquisa. Quando esta procedure é executada via SQL Plus (client 10g) 
ela é instantanea, porém quando esta procedure é disparada por uma 
aplicação Java ela demora alguns minutos (tempo suficiente para dar 
um gargalo grande no processo).
   Realizei trace (10046 level 12) nos 2 ambientes e realmente a 
paralização foi na abertura do cursor. Foi detectado que os planos de 
execução são diferentes. 
   Rodei a procedure via SQL Plus na mesma maquina que está o 
servidor de aplicação Java e fica rápido também. É alguma ligação com 
a aplicação Java que está fazendo alterar o plano de execução do 
cursor.
   Preciso da ajuda de vocês para que a procedure rode nos 2 
ambientes (SQL Plus/ Java / ...) com o mesmo plano de execução.
   Segue abaixo a versão atual do banco de dados e servidores.

Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit 
Production
With the Partitioning, Real Application Clusters, OLAP and Data 
Mining options
--
S.O.: Linux Itanium

   Desde já agradeço a ajuda.


André 

Responder a