CREATE INDEX idx_pedido_status ON pedido USING btree (status)

2008/8/19 Rudinei Dias <[EMAIL PROTECTED]>:
> 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
>
>
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a