Boa tarde,

Estou executando um select distinct em uma tabela com 3.5 milhoes de
registros.

Tabela e campos ficticios no select.

select distinct data_itens from itens where codigo = 1 and
data_itens between '01/01/2016' and '12/31/2016' order by data_itens

O que ocorre é que a primeira vez que este select é executado, ele demora
muito mais do que as demais vezes que ele for executado.

*Primeira execução da QUERY:*
"Unique  (cost=8.59..8.60 rows=1 width=4) (actual
time=168565.216..168566.975 rows=233 loops=1)"
"  ->  Sort  (cost=8.59..8.60 rows=1 width=4) (actual
time=168565.211..168565.790 rows=14311 loops=1)"
"        Sort Key: data_movimento"
"        Sort Method: quicksort  Memory: 1055kB"
"        ->  Index Scan using reproc_estoque on nota_item  (cost=0.56..8.58
rows=1 width=4) (actual time=157809.532..168551.829 rows=14311 loops=1)"
"              Index Cond: ((cod_emp = 1) AND (cod_fil = 1) AND
(cod_reduzido_merc = 1))"
"              Filter: ((data_movimento >= '2016-01-01'::date) AND
(data_movimento <= '2016-12-31'::date))"
"              Rows Removed by Filter: 132367"
"Planning time: 59.849 ms"
"Execution time: 168567.309 ms"


*Segunda execução da QUERY:*
"Unique  (cost=8.59..8.60 rows=1 width=4) (actual time=168.420..169.576
rows=233 loops=1)"
"  ->  Sort  (cost=8.59..8.60 rows=1 width=4) (actual time=168.419..168.784
rows=14311 loops=1)"
"        Sort Key: data_movimento"
"        Sort Method: quicksort  Memory: 1055kB"
"        ->  Index Scan using reproc_estoque on nota_item  (cost=0.56..8.58
rows=1 width=4) (actual time=149.195..166.556 rows=14311 loops=1)"
"              Index Cond: ((cod_emp = 1) AND (cod_fil = 1) AND
(cod_reduzido_merc = 1))"
"              Filter: ((data_movimento >= '2016-01-01'::date) AND
(data_movimento <= '2016-12-31'::date))"
"              Rows Removed by Filter: 132367"
"Planning time: 0.310 ms"
"Execution time: 169.788 ms"

Vejam a diferença do Planning time e execution time....

O que estou fazendo de "errado" e como posso melhorar isto?

Obrigado à todos.
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a