Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

MarceloPereira

Problema com consulta

Recommended Posts

Vê só galera, vou tentar ser conciso, mas a duvida é meio complexa.

Resumindo:

Eu trabalho num sistema Web desenvolvido em JSP (Java) com servers Tomcat.

O acesso ao banco de dados pela aplicação JSP é todo configurado via Hibernate.

E o SGBD é Oracle 10g. A versao do java é 5. Eu faço parte da equipe de BD. Os desenvolvedores Java, recentemente se depararam com um problema e pediram uma solução:

 

O problema:

1)Eles têm uma consulta SQL (bem grande por sinal), em um dos arquivos JSP, que fica processando indefinidamente no banco e não retorna nunca, nunca acaba.

 

Parametros de conhecimento:

1)Eles têm outras consultas (grandes também, muito grandes), no MESMO arquivo (mesma classe JSP) e que funcionam perfeitamente.

 

2)Eu e o DBA vimos no Enterprise manager que a sessão fica trabalhando indefinidamente e não termina nunca, ocupando um poder computacional gigante

 

3)Pegamos os traces e vimos que ele fica lendo indefinidamente os DATA Files (sequencial read e scatter read)

 

4)Não achamos problemas nenhum na consulta, pois EU MESMO criei uma classe Java (sem ser JSP), só com um MAIN e uma conexão ORACLE com o driver que eles usam e a consulta retornou certinha.

 

5)Rodei a consulta no PL/SQL Developer e ela retornou.

 

6)Trocamos a string do SQL da consulta que não funciona para a string da consulta que funciona, e ela continuou sem funcionar (ou seja, poderiamos pensar que era alguma coisa no codigo java, mas subsituindo a consulta q funciona pela que não funciona, continua sem funcionar...)

 

7)O mesmo sistema JSP no ambiente de produção tem comportamento diferente do ambiente de desenvolvimento. Em desenvolvimento ele fica indefinindo. em produção ele ocupa todo o tablespace com a consulta..e começa a abrir sessoes uma atras da outra...e vira uma bola de neve.

 

8)Aconteceu com um fato que pode ajudar na investigação:

Uma consulta apresentou o mesmo problema e o DBA conseguiu fazer ela funcionar somente aumentando o Tablespace

Podemos pensar que é problema de performance entao. Mas em ambiente de Desenvolvimento a consulta problemática não chega a ocupar todo o Tablespace, então aumentá-lo não é a soluçao.

 

Voces tem alguma ideia do que pode ser?

Se for performance...que parametros podem ser modificados?

 

Obrigado pela atenção!

 

Att.

Marcelo

Compartilhar este post


Link para o post
Compartilhar em outros sites

A mesma query executando via SqlPlus (ou semalhante) apresenta problemas ?

 

Tem de ser nas mesmas condições do problema , hora do dia , condições de where etc, ou seja, descartar alguma variável que possa mascarar o problema.

 

Se não o problema pode estar no Java ou na camada de acesso ao Banco , algumas camadas tentam "otimizar" as queries e acabam fazendo caca.

 

Obs : Este tópico foi postado no local errado eu o movi.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.