On Thu, 2005-05-12 at 10:05, Prasanth wrote:
> When joining two tables the query plan is doing a seq scan rather than index
> scan. I do have indexes on the columns used for joining the tables.
>
> Example:
> SELECT a.id FROM a, b WHERE a.id = b.id;
>
> QUERY PLAN
> -----------------------------------------------------------------------------------------
> Hash Join (cost=13865.30..326413.23 rows=6451 width=18)
> Hash Cond: ("outer".id = "inner".id)
> -> Seq Scan on a (cost=0.00..125076.37 rows=6450937 width=18)
> -> Hash (cost=10168.64..10168.64 rows=500664 width=4)
> -> Seq Scan on b (cost=0.00..10168.64 rows=500664 width=4)
> (5 rows)
>
>
> The planner used to perform a index scan. I have added a lot of data in those
> two tables. Right now both tables have millions of records. After adding the new
> records the planner is going for a seq scan while doing the join.
>
> Is there any tunning I can do so that the query planner would do a index scan?
>
> I did a vacuum analyze but no change.
try this:
explain analyze SELECT a.id FROM a, b WHERE a.id = b.id;
set enable_seqscan=off;
explain analyze SELECT a.id FROM a, b WHERE a.id = b.id;
and see which is faster.
It's quite likely that using an index here makes no sense, since there's
no selectivity happening, and you need all the data anyway.