2009/9/1 Leandro Müller <[email protected]>:
> Ola Turma.
>
> Estou tentando gerar uma consulta de soma em um intervalo de 30 dias, são
> vários registros para calcular, podem esta demorando em torno de 15 minutos,
> creio eu que não poderia demorar tanto assim, pois são em torno de 4 mil
> registros dentro da tabela saida2.
>
> SELECT
> (
> SELECT
> sum(saida2.quantidade)
> FROM
> public.saida1 saida1 INNER JOIN public.saida2 saida2 ON saida1.id_saida1
> = saida2.id_saida1
> INNER JOIN public.unidade unidade ON saida1.id_unidade =
> unidade.id_unidade
> INNER JOIN public.lote lote ON saida2.id_lote = lote.id_lote
> WHERE
> saida1.data >=$P{dataInicial}
> and saida1.data <=$P{dataFinal}
> AND unidade.id_municipio = $P{idMunicipio} and
> lote.id_principio_ativo=principio_ativo.id_principio_ativo) as saida,
>
> (SELECT
> sum(entrada2.quant_entrada)
> FROM
> public.entrada1 entrada1 INNER JOIN public.entrada2 entrada2 ON
> entrada1.id_entrada1 = entrada2.id_entrada1
> INNER JOIN public.unidade unidade ON entrada1.id_unidade =
> unidade.id_unidade
> INNER JOIN public.lote lote ON entrada2.id_lote = lote.id_lote
> WHERE
> entrada1.data_entrada >=$P{dataInicial}
> and entrada1.data_entrada <=$P{dataFinal} and unidade.id_municipio =
> $P{idMunicipio}
> and lote.id_principio_ativo=principio_ativo.id_principio_ativo) as entrada
>
> FROM
> public.principio_ativo principio_ativo inner join grupo_farmacologico on
"principio_ativo" estar duplicado foi só um erro de digitação ou é
para ser um produto cartesiano mesmo?
> principio_ativo.id_grupo_farmacologico=grupo_farmacologico.id_grupo_farmacologico
> inner join
> municipio on municipio.id_municipio=grupo_farmacologico.id_municipio
> where grupo_farmacologico.id_municipio=$P{idMunicipio}
>
> Existe índice para as datas e as chaves fk.
>
> Alguem tem alguma sugestão para melhorar a performace?
Osvaldo
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral