Re: weird EXPLAIN

From: Tom Jenkins <tjenkins(at)devis(dot)com>
To: Varun Kacholia <varunk(at)cse(dot)iitb(dot)ac(dot)in>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: weird EXPLAIN
Date: 2002-06-17 20:36:41
Message-ID: 1024346202.15174.205.camel@asimov
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Mon, 2002-06-17 at 16:04, Varun Kacholia wrote:
> hi ,
> I have just migrated to PostgreSQL...and found the following wierd :
>
> suryadb=# explain select * from dbwin where id in (select id from wdwin
> where word='bacd');
> NOTICE: QUERY PLAN:
> Seq Scan on dbwin (cost=0.00..8158.20 rows=1000 width=76)
> ^^^^^^^^^^^^^^^^^^
> SubPlan
> -> Materialize (cost=8.14..8.14 rows=10 width=4)
> -> Index Scan using wdkwin on wdwin (cost=0.00..8.14 rows=10 width=4)
>
>
> i wanted to know why a sequential scan is done on the field id
> while it is a primary key in the table dbwin.this can be clearly
> confirmed from the query below :
>
> suryadb=# explain select * from dbwin where id=1234;
> NOTICE: QUERY PLAN:
> Index Scan using dbwin_pkey on dbwin (cost=0.00..8.14 rows=10 width=76)
>
> why does it do a sequential scan for the query above??

If the table is small, the planner figures (usually correctly) that it
is quicker to load it all in memory and do an in-memory scan, rather
than loading the index into memory, getting the row from the index, then
loading the row from disk (2 disc reads to 1)

--

Tom Jenkins
Development InfoStructure
http://www.devis.com

In response to

Browse pgsql-general by date

  From Date Subject
Next Message terry 2002-06-17 21:11:58 Re: create definiton
Previous Message Varun Kacholia 2002-06-17 20:01:42 weird EXPLAIN