Obrigado, Euler!
Vou analisar as 3 sugestões e ver qual a melhor se encaixa em nosso caso.


Em 2 de novembro de 2016 21:03, Euler Taveira <[email protected]>
escreveu:

> On 31-10-2016 15:59, Marcio Meneguzzi wrote:
>
> [Você perguntou no privado mas a sua dúvida pode servir para outros aqui]
>
> > select distinct data_itens from itens where codigo = 1 and
> > data_itens between '01/01/2016' and '12/31/2016' order by data_itens
> >
> Você não mostrou a quantidade de registros mas como o outro colega
> comentou, um índice em data_itens pode ajudar se a seletividade for boa
> (note que 'Rows Removed by Filter' é alto).
>
> > O que estou fazendo de "errado" e como posso melhorar isto?
> >
> Sim. Mas é preciso trazer os dados do disco para a cache do PostgreSQL.
>
> Provavelmente você reiniciou o serviço ou o sistema operacional. No caso
> do serviço, você perde a cache do postgres. No caso do sistema
> operacional, você perde tanto a cache do postgres quanto a cache feita
> pelo sistema operacional.
>
> A primeira execução vai ser lenta porque os dados estão no disco (os
> dados precisam ir para cache do SO e cache do postgres). O postgres só
> manipula dados que estão na sua cache; se eles não estão lá tem que ser
> colocados lá (a partir da cache do SO, que é na memória, ou do disco).
>
> Você não informou a versão, mas o pg_prewarm [1] (>= 9.4) pode ajudar na
> tarefa de popular a cache antes que o acesso ao sistema seja liberado.
> Aliado a isso, você pode usar o pg_hibernator [2] para persistir a cache
> do postgres se tiver que reiniciar o serviço ou mesmo o servidor. Uma
> outra opção é o pgfincore [3] que lida somente com a cache do sistema
> operacional.
>
>
> [1] https://www.postgresql.org/docs/9.6/static/pgprewarm.html
> [2] https://github.com/gurjeet/pg_hibernator
> [3] https://github.com/klando/pgfincore
>
>
> --
>    Euler Taveira                   Timbira - http://www.timbira.com.br/
>    PostgreSQL: Consultoria, Desenvolvimento, Suporte 24x7 e Treinamento
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a