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
