O uso de OR é sempre uma coisa complicada.
Ao invés disso, porque não utilizas IN

   WHERE pedido.status in (4,44,59)

depois, verifique se pedido.status tem algum índice. Pode estar aí seu
problema.

2008/8/19 José Carlos Messias <[EMAIL PROTECTED]>

> Galera,
>
> Pode estar na cara mas não estou conseguindo interpretar o explain e a
> consulta está muito lenta. Vejam:
>
> SELECT receber.codpedido, max(receber.rec_parcela) AS max_rec_parcela
>  FROM receber
>  JOIN pedido ON pedido.codpedido = receber.codpedido
>  WHERE pedido.status = 4 OR pedido.status = 44 OR pedido.status = 59
>  GROUP BY receber.codpedido;
>
>                                                  QUERY PLAN
>
> ----------------------------------------------------------------------------------------------------------------
>  HashAggregate  (cost=118925.43..119785.92 rows=68839 width=8)
>  ->  Hash Join  (cost=42712.73..114110.34 rows=963017 width=8)
>        Hash Cond: ("outer".codpedido = "inner".codpedido)
>        ->  Seq Scan on receber  (cost=0.00..31467.72 rows=1432772 width=8)
>        ->  Hash  (cost=39719.05..39719.05 rows=405474 width=4)
>              ->  Bitmap Heap Scan on pedido  (cost=2560.18..39719.05
> rows=405474 width=4)
>                    Recheck Cond: ((status = 4) OR (status = 44) OR
> (status = 59))
>                    ->  BitmapOr  (cost=2560.18..2560.18 rows=408907
> width=0)
>                          ->  Bitmap Index Scan on idx_pedido_status
> (cost=0.00..2524.24 rows=403783 width=0)
>                                Index Cond: (status = 4)
>                          ->  Bitmap Index Scan on idx_pedido_status
> (cost=0.00..17.97 rows=2562 width=0)
>                                Index Cond: (status = 44)
>                          ->  Bitmap Index Scan on idx_pedido_status
> (cost=0.00..17.97 rows=2562 width=0)
>                                Index Cond: (status = 59)
> _______________________________________________
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a