Re: Query Plan - Index Scan & Seq Scan

Поиск
Список
Период
Сортировка
От Prasanth
Тема Re: Query Plan - Index Scan & Seq Scan
Дата
Msg-id 42837B95.2090908@nqadmin.com
обсуждение исходный текст
Ответ на Re: Query Plan - Index Scan & Seq Scan  (Scott Marlowe <smarlowe@g2switchworks.com>)
Ответы Re: Query Plan - Index Scan & Seq Scan  (Scott Marlowe <smarlowe@g2switchworks.com>)
Список pgsql-admin
I agree with you.

But I have the where conditions on the tables I was expecting the planner to
user index scan but it went for seq scan.

I did a little testing using what you said.

Below are the results.

SELECT a.id FROM a,b WHERE a.id = b.id AND a.code >2 AND b.account_id = 16221;

Total runtime: 18194.936 ms

Then I set the seqscan off and ran the same query.

Total runtime: 27.554 ms

Thanks,
-Prasanth.

Scott Marlowe wrote:
> 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.
>
> ---------------------------(end of broadcast)---------------------------
> TIP 7: don't forget to increase your free space map settings
>
>

В списке pgsql-admin по дате отправления:

Предыдущее
От: Prasanth
Дата:
Сообщение: Re: Query Plan - Index Scan & Seq Scan
Следующее
От: Scott Marlowe
Дата:
Сообщение: Re: Query Plan - Index Scan & Seq Scan