José Carlos Messias escreveu: > Euler coloquei as consultas em http://www.cpt.com.br/zehk/sql.txt. > Tenho algumas perguntas sobre o seu ambiente. Qual é o número de registros de cada tabela envolvida? Quais os parâmetros diferentes do padrão no seu postgresql.conf (estaria interessado nos parâmetros da seção Query Tuning)? Você alterou o 'statistics target' (aka SET STATISTICS) de alguma tabela? Se sim, quais os novos valores?
Pelo que pude ver do EXPLAIN ANALYZE, acho que você podia tentar reescrever essa consulta sem a subconsulta. Algo como: SELECT FP.NomeFPag AS FPag, SUM(R.ValorParcela) AS Valor FROM televenda_pedidos.Pedido P INNER JOIN televenda_pedidos.Receber R ON P.CodPedido = R.CodPedido INNER JOIN televenda_pedidos.FPagamento FP ON P.CodFPag = FP.CodFPag INNER JOIN televenda_pedidos.DetPedido D ON P.CodPedido = D.CodPedido INNER JOIN televenda_produtos.vProdutos Pr ON D.CodProd = Pr.CodProd -- XXX não sei se é necessário para sua consulta INNER JOIN televenda_pedidos.Receber R ON P.CodPedido = R.CodPedido WHERE Pr.empresa = 4 --AND R.ValorPago IS NOT NULL AND (R.DataPag IS NOT NULL) AND COALESCE(R.DataPagExtra, R.DataPag) BETWEEN '2008/08/25' AND '2008/08/25 23:59:59' AND P.status = 4 GROUP BY FP.NomeFPag Dica: utilize valores diferentes do work_mem e não esqueça de analisar as tabelas antes dos testes. -- Euler Taveira de Oliveira http://www.timbira.com/ _______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral