2015-04-06 16:58 GMT-03:00 Matheus de Oliveira <matioli.math...@gmail.com>:
> On Mon, Apr 6, 2015 at 4:46 PM, Ariel Alves <arielalves...@gmail.com> > wrote: > >> -> Index Scan using >> vehiclebusserviceplanned_tripprogramid_idx on vehiclebusserviceplanned vbp1 >> (cost=0.00..117.25 rows=9 width=16) (actual time=0.387..0.476 rows=0 >> loops=736406) >> Index Cond: (trip_program_id = >> vbp2.trip_program_id) >> Filter: (('2015-04-06'::date >= >> (begintimestamp)::date) AND ('2015-04-06'::date <= >> COALESCE((endtimestamp)::date, '2015-04-06'::date))) >> > > Não analisei a consulta ainda, mas só por esse Index Scan, eu vejo que um > índice em (trip_program_id, begintimestamp, endtimestamp) seria útil, você > chegou a tentar esse índice? > Ah, aproveitando, se está mapeando o "endtimestamp" como sendo NULL em casos onde o final não é conhecido, você pode usar o 'infinity', pois timestamp e timestamptz aceitam '-infinity' e 'infinity'. Se quiser testar sem alterar a tabela, você pode usar: ... AND '2015-04-06' BETWEEN begintimestamp AND COALESCE(endtimestamp, 'infinity') E um índice em: (trip_program_id, begintimestamp, COALESCE(endtimestamp, 'infinity')) Atenciosamente, -- Matheus de Oliveira Analista de Banco de Dados Dextra Sistemas - MPS.Br nível F! www.dextra.com.br/postgres
_______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral