Perfornance na pesquisa

Pessoal,

to com um problema, tenho uma pesquisa que esta demorando 6 minutos para retornar os dados, o banco é oracle e na ferramenta a pesquisa leva em torne de 15 segundos para retornar qq tipo de informação ! A pesquisa é feita em 4 tabelas, so que a maior delas nao possui indice !! Ja no Java problema deve estar no executeQuery, eu acho !!! Algum tem alguma ideia de como resolver isso ?

valew

Verificque se você não está usando funções em colunas que são indices, isso mata a performance da query. Quanto aos 15 segundos, ela demora isso para te mostrar parte dos resultados, vá percorrendo todos os registros dela para ver se não demora.

Uma dica: ao invés de “chutar” onde o problema de performance está, use um profiler. O netbeans possui um, o eclipse também. Ele mede o tempo que os métodos estão levando para executar e te mostra se o problema de performance é onde você pensa estar. Sobre isso, veja o tópico:
http://www.guj.com.br/posts/list/48226.java

Bom, o fato da tabela não ter índices pode ser um complicador. São tabelas muito grandes? Você pode mexer na estrutura do banco? Poderia indexar isso?

Você pode estar esquecendo de fazer alguma junção também. Isso faz com que o banco de dados faça o produto notavel das tabelas, o que leva muito tempo e retorna uma quantidade absurda de registros… errados.

Finalmente, se nada disso resolver, talvez seja melhor melhorar a percepção do usuário. Ou seja, jogar uma telinha com o texto “aguarde…” e colocar alguma figurinha mexendo. Pode não melhorar a performance, mas torna o usuário mais disposto a esperar pelo resultado…

Normalmente problemas de consultas são mesmo por falta (ou inadequação) de índices.

Como você está usando Oracle, deve haver um DBA onde você está trabalhando para lhe ajudar com a query ou com o diagnóstico do seu problema.

Outra razão comum seria não a pesquisa em si demorar, mas a conexão com o banco de dados.

Entao,

foi criados um indice na tabela, porem a consulta continua lenta !!

A conexao esta sendo feito normalmente !!!

Outra coisa é alguns comandos do oracle que podem estar causando a lentidao, hoje, o pessoal que tem mais conhecimento em banco esta analisando a query !!

Porem a lentisão sempre ocorre na linha em que eu executo a pesquisa, por isso imagino que nao tenha nada a ver com a conexao ! posso estar enganado a respeito disso !!!

valew pelas dicas pessoal !

Abs