2014-08-04 11:06 GMT-03:00 Flavio Henrique Araque Gurgel
<[email protected] <mailto:[email protected]>>:

    EXPLAIN ANALYZE SELECT movjulg.pk_processo ,
                                      movjulg.intmunicipiocomarcaid,
                                      movjulg.dtamovimento
                      FROM base.movimentacao movjulg
                      INNER JOIN tb_movimentacoes_cnj___julgamento tmcj
    ON movjulg.inttipomovimentoid = tmcj.id <http://tmcj.id>
                      WHERE (movjulg.bolcancelado IS FALSE
                      AND movjulg.dtamovimento <= '2013-12-31 23:59:59-03');


http://explain.depesz.com/s/mIV


    E os resultados abaixo:
    SELECT count pk_processo FROM base_movimentacao;

  60754114

    SELECT count pk_processo FROM base_movimentacao WHERE bolcancelado =
    FALSE ;

  48162310

    SELECT count pk_processo FROM base_movimentacao WHERE dtamovimento
    <= '2013-12-31 23:59:59-03';

  54669505

    SELECT count pk_processo FROM base_movimentacao WHERE bolcancelado =
    FALSE AND dtamovimento <= '2013-12-31 23:59:59-03';

  42133259


Bruno E. A. Silva.

É Bruno, não tem muito jeito.
Você tem muitas linhas que retornam com esse seu filtro. Não há como direcionar um índice aí não.

Se o resultado é o que você espera, então, paciência, é uma consulta cara. Se você tiver discos SSD, talvez colocar random_page_cost como 1 vai direcionar para índices, mas se seus discos são rotativos, o seqscan será mais barato.

[]s
Flavio Gurgel
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a