Ir para conteúdo

POWERED BY:

Arquivado

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

Muricy

[Resolvido] Otimização de SQL

Recommended Posts

Primeiramente obrigado a todos pela atenção.

Estou com o seguinte problema.

 

Ambiente: Oracle

 

Executo essa string:

 

select codigo,nome from produtos where saldo<>(select sum(case when movimento='E' then quantidade else 0 end)-sum(case when movimento='S' then quantidade else 0 end) as saldo from lancamentos where lancamentos.codigo=produtos.codigo)

 

Ok... e rapidissimo.

 

Executo a segunda:

 

select codigo,nome from produtos where saldo<>(select (sum(entradas)-sum(saidas)) as saldo from saldos where produtos.codpro=saldos.codpro)

 

 

Agora vem o problema... quando executo uma string unificando as duas acima demora uma eternidade... pra falar a verdade não sei quanto tempo leva... pois não espero acabar.

 

String:

 

select codigo,nome from produtos where

saldo<>(select sum(case when movimento='E' then quantidade else 0 end)-sum(case when movimento='S' then quantidade else 0 end) as saldo from lancamentos where lancamentos.codigo=produtos.codigo)

or

saldo<>(select (sum(entradas)-sum(saidas)) as saldo from saldos where produtos.codpro=saldos.codpro)

 

Abraços a todos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Subselect

Sem indice provalmente

Comparando desigualdade

 

Deve demorar mesmo...

 

tenta

 

fazer uma tabela via join para montar seu saldo numa view ou tabela virtual.

comparar por joim com sua tabela de produtos

 

ajudou ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O melhor jeito de saber o que pode estar acontecendo, é analisar o PLANO DE EXECUÇÂO do SELECT que está com problema, poste o Explain Plan para verificarmos os problemas.

 

Abraços,

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.