Primeiro, porque você nao transforma em Inner joins ?
Pode nao otimizar, mas vai ao menos deixar mais legível. Está difícil até de entender. Procure ver se todas as tabelas estão sendo ligadas, assim não causa nenhum produto cartesiano. (Eu ia verificar isso, mas a confusão que está me deu nó no cérebro :) Quando você falou queo gargalo da sua consulta é no In duvidei um pouco, já que são operações verificando somente valores e nao tabelas aninhadas. A dica principal é transformar as ligações para INNER Joins, ao meu ver ficaria muito mais fácil para analisar. On 5/28/07, João Paulo <[EMAIL PROTECTED]> wrote:
Olá pessoal, Tenho a seguinte query que funciona perfeitamente, porém acho que ela está demorando mais para executar. Passei pelo analyze e onde a query demora mais é quando são feitos os dois in's quase no final da query, alguem sabe me dizer se tenho como otimizar esta query para ela ficar mas rápida. select distinct tabela1.campo1,t1.campo5,t1.campo6,tabela3.campo3,tabela6.campo2,count(*) from tabela1,tabela2,tabela3,tabela4 t1,tabela4 t2,tabela5,tabela6,tabela7 t3,tabela7 t4 where tabela1.campo2=tabela2.campo2 and tabela1.campo3=tabela2.campo3 and tabela2.campo4='U' and tabela1.datal between '2006-06-01' and '2006-06-30' and tabela2.campo5=tabela3.campo3 and tabela3.campo4='A' and tabela1.campo5=t1.campo6 and t1.campo7='A' and t1.campo6=t2.campo5 and tabela1.campo8=tabela5.campo2 and tabela5.campo3=tabela6.campo2 and tabela1.campo1=t3.campo1 and t3.campo2=t4.campo3 and t3.campo2 in (1,2,3,4,5,6,7,8,9,10,11,12,13,14) and t4.campo3 in (1000,1001,1002,1003,1004,1005) group by tabela1.campo1,t1.campo5,t1.campo6,tabela3.campo3,tabela6.campo2; João Paulo. _______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
_______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral