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.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?
Abraços.
Leandro Müller
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral