[pgbr-geral] Otimizar sql - Reutilizar resultado de subselect

Mozart Hasse mozart.hasse em usa.net
Quinta Junho 25 16:31:07 UTC 2009


Oi Newton,

> From: Newton Teixeira do Nascimento Júnior
> Desculpem a insistência, mas alguém conhece uma forma de contornar essa
situação ou a forma que estou atualmente fazendo é a única forma viável?

Infelizmente o Postgres está longe de ter Common Table Expressions ou um
otimizador comparável ao do SQL Server, então o jeito é mexer na consulta.
Veja se isso ajuda:

1. Pegue as tabelas do teu SUM e transforme em INNER JOINs (PAS_R X,
bhpas_h_2009_05_01 Y)
2. Adicione o GROUP BY A.eq, B.id_eq, B.unidade, B.tensao_equip, B.nominal

Isso vai fazer com que as tabelas de suas totalizações sejam percorridas
(teoricamente) apenas uma vez, o que deve deixar o desempenho administrável.

Não se esqueça de que índices podem ajudar. Experimente um EXPLAIN ANALYZE
e quem sabe o otimizador te diga algo que você deixou passar.

Anteciosamente,

Mozart Hasse






More information about the pgbr-geral mailing list