Re: Poor performance on very simple query ?

From: Darcy Buskermolen <darcyb(at)commandprompt(dot)com>
To: pgsql-performance(at)postgresql(dot)org
Cc: Arnaud Lesauvage <thewild(at)freesurf(dot)fr>
Subject: Re: Poor performance on very simple query ?
Date: 2006-10-03 15:10:23
Message-ID: 200610030810.24197.darcyb@commandprompt.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

On October 3, 2006 04:25 am, Arnaud Lesauvage wrote:
> Hi List !
>
> I have a performance problem, but I am not sure whether it really
> is a problem or not.
> I am running a fresh install of PostgreSQL 8.1.4 on Windows2000.
> The server is a bi-opteron with 2GB of RAM. The PostgreSQL's data
> folder is on a RAID-0 array of 2 SATA WD Raptor drives (10.000
> rpm, 8MB cache).
>
> I have a very simple table, with only ~500 rows :
> CREATE TABLE table1
> (
> gid int4 NOT NULL DEFAULT 0,
> field1 varchar(45) NOT NULL,
> field2 int2 NOT NULL DEFAULT 1,
> field3 int2 NOT NULL DEFAULT 0,
> field4 int2 NOT NULL DEFAULT 1,
> field5 int4 NOT NULL DEFAULT -1,
> field6 int4,
> field7 int4,
> field8 int4,
> field9 int2 DEFAULT 1,
> CONSTRAINT table1_pkey PRIMARY KEY (gid)
> )
> WITHOUT OIDS;
>
> The problem is that simple select queries with the primary key in the
> WHERE statement take very long to run.
> For example, this query returns only 7 rows and takes about 1
> second to run !

According to your explain analyze, it's taking 0.8 of a milisecond (less than
1 1000th of a second) so I can't see how this can possibly be speed up.

> SELECT * FROM table1 WHERE gid in (33,110,65,84,92,94,13,7,68,41);
>
> EXPLAIN ANALYZE SELECT * FROM table1 WHERE gid in
> (33,110,65,84,92,94,13,7,68,41);
>
> QUERY PLAN
> ---------------------------------------------------------------------------
>---------------------------------------------------------------------------
> Seq Scan on table1 (cost=0.00..23.69 rows=10 width=35) (actual
> time=0.023..0.734 rows=7 loops=1)
> Filter: ((gid = 33) OR (gid = 110) OR (gid = 65) OR (gid = 84)
> OR (gid = 92) OR (gid = 94) OR (gid = 13) OR (gid = 7) OR (gid =
> 68) OR (gid = 41))
> Total runtime: 0.801 ms
> (3 rows)
>
> I have run "VACUUM FULL" on this table many times... I don't know
> what to try next !
> What is wrong here (because I hope that something is wrong) ?
> Thanks a lot for your help !
>
> Regards
> --
> Arnaud
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 9: In versions below 8.0, the planner will ignore your desire to
> choose an index scan if your joining column's datatypes do not
> match

--
Darcy Buskermolen
Command Prompt, Inc.
Sales/Support: +1.503.667.4564 || 24x7/Emergency: +1.800.492.2240
PostgreSQL solutions since 1997
http://www.commandprompt.com/

In response to

Browse pgsql-performance by date

  From Date Subject
Next Message Alex Stapleton 2006-10-03 15:16:48 Re: Performance Optimization for Dummies 2 - the SQL
Previous Message Merlin Moncure 2006-10-03 15:04:05 Re: Performance Optimization for Dummies 2 - the SQL