Re: Lack of use of indexes - Mailing list pgsql-general

From Don Isgitt
Subject Re: Lack of use of indexes
Date
Msg-id 3DDE7356.5010208@soundenergy.com
Whole thread Raw
In response to Lack of use of indexes  (Don Isgitt <djisgitt@soundenergy.com>)
Responses Re: Lack of use of indexes  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-general
Thank you, Tom, for your reply.

As usual (from my observation of this newsgroup), you are quite correct,
as was Stephan. To wit,

gds2=# explain select * from lg where section=14;
NOTICE:  QUERY PLAN:

Seq Scan on lg  (cost=0.00..5885.77 rows=3836 width=73)

EXPLAIN
gds2=# set enable_seqscan=off;
SET VARIABLE
gds2=# explain select * from lg where section=14;
NOTICE:  QUERY PLAN:

Index Scan using lgsec on lg  (cost=0.00..12167.45 rows=3836 width=73)

EXPLAIN

I am surprised at the low cutoff percentage, but it is nice to know for
future reference.

Thank you also to Doug and Stephan for your help. I remain quite
pleasantly amazed at the quality of the software and of the support.

Don


Tom Lane wrote:

>Don Isgitt <djisgitt@soundenergy.com> writes:
>
>>gds2=# select count(*) from lg;
>> count
>>--------
>> 138459
>>(1 row)
>>
>
>>gds2=# explain select * from lg where state='NM';
>>NOTICE:  QUERY PLAN:
>>
>
>>Seq Scan on lg  (cost=0.00..5885.77 rows=14890 width=73)
>>
>
>An indexscan is usually a poor choice for retrieving 10% of the data in
>a table (unless the index order and physical order are highly
>correlated, as for instance after a CLUSTER command).
>
>If you don't think the planner is guessing correctly here, you can force
>an indexscan (do "set enable_seqscan = off") ... but I'll bet it gets
>slower.
>
>For randomly-ordered rows the cutoff point for indexscan effectiveness
>is surprisingly low --- typically around 1% of the rows.
>
>            regards, tom lane
>
>



pgsql-general by date:

Previous
From: "Dave [Hawk-Systems]"
Date:
Subject: caveats upgrading from 7.0.3 to 7.2.x
Next
From: Tom Lane
Date:
Subject: Re: Lack of use of indexes