Re: optimizer ignoring primary key and doing sequence scan

From: Edoardo Panfili <edoardo(at)aspix(dot)it>
To: pgsql-general(at)postgresql(dot)org
Subject: Re: optimizer ignoring primary key and doing sequence scan
Date: 2008-07-15 06:19:25
Message-ID: 1194347.1251216102766865.JavaMail.root@vnr.agr.unipg.it
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Scott Marlowe ha scritto:
> On Mon, Jul 14, 2008 at 1:54 PM, Chris Hoy <chris(dot)hoy(at)hoyc(dot)fsnet(dot)co(dot)uk> wrote:
>> Hi
>>
>> I have a number of tables in my database where the queries appear to
>> ignoring the primary key and doing a seq scan instead, however other tables
>> appear to be fine. I can see any difference between them.
>>
>> Is their any way of determination why the otimizer isn't picking up the
>> primary key?
>>
>> Version 8.3.3 windows
>>
>> An example of a non working table is:
>>
>> select * from industries where industryid = 1;
>> "Seq Scan on industries (cost=0.00..1.02 rows=1 width=116) (actual
>> time=0.011..0.013 rows=1 loops=1)"
>
> According to this there's only one row in the table. why WOULD
> postgresql use an index when it can just scan the one row table in a
> split second.
>
I agree with you that it can depend on the size of the table but where
you can read that the table contains only one row?

I try with my table (39910 rows, no index on column note)
explain analyze select * from table where note='single example';

Seq Scan on table (cost=0.00..2458.88 rows=13 width=327) (actual
time=10.901..481.896 rows=1 loops=1)

On the postgres manual I can find "Estimated number of rows output by
this plan node (Again, only if executed to completion.)" regarding the
third parameter of the explain

Where is my error?

Edoardo

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Charles Duffy 2008-07-15 07:07:30 Re: Backing up and deleting a database.
Previous Message olivier.scalbert@algosyn.com 2008-07-15 05:53:36 Re: Out of memry with large result set