Thread: Re: QRY seems not using indexes

Re: QRY seems not using indexes

From
"Qingqing Zhou"
Date:
<morandell@gmail.com> writes
>
>
> so, if I do a qry like "EXPLAIN ANALYZE select * from pridecdr where
> idsede=8977758488" it tooks a lot of time before i get back any result:
>
> Index Scan using prd_id_sede on pridecdr  (cost=0.00..699079.90
> rows=181850 width=138) (actual time=51.241..483068.255 rows=150511
> loops=1)
>    Index Cond: (idsede = 8977758488::bigint)
>  Total runtime: 483355.325 ms
>

The query plan looks ok. Try to do EXPLAIN ANALYZE twice and see if there is
any difference. This could reduce the IO time to read your index/data since
you got enough RAM.

Also, if you haven't done VACUUM FULL for a long time, do so and compare the
difference.

Regards,
Qingqing



Re: QRY seems not using indexes

From
Mark Kirkwood
Date:
Qingqing Zhou wrote:
> <morandell@gmail.com> writes
>
>>
>>so, if I do a qry like "EXPLAIN ANALYZE select * from pridecdr where
>>idsede=8977758488" it tooks a lot of time before i get back any result:
>>
>>Index Scan using prd_id_sede on pridecdr  (cost=0.00..699079.90
>>rows=181850 width=138) (actual time=51.241..483068.255 rows=150511
>>loops=1)
>>   Index Cond: (idsede = 8977758488::bigint)
>> Total runtime: 483355.325 ms
>>
>
>
> The query plan looks ok. Try to do EXPLAIN ANALYZE twice and see if there is
> any difference. This could reduce the IO time to read your index/data since
> you got enough RAM.
>
> Also, if you haven't done VACUUM FULL for a long time, do so and compare the
> difference.
>

Could also be libpq buffering all 150000 rows before showing any.

It might be worthwhile using a CURSOR and doing 1 FETCH. If that is
quick, then buffering is probably the issue. BTW - do you really want
all the rows?

Cheers

Mark