Muricy 0 Denunciar post Postado Novembro 14, 2008 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
Motta 645 Denunciar post Postado Novembro 14, 2008 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
alphamek 2 Denunciar post Postado Novembro 15, 2008 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
Muricy 0 Denunciar post Postado Novembro 16, 2008 Usei o UNION no lugar do OR e funcionou perfeitamente. Compartilhar este post Link para o post Compartilhar em outros sites