From: | Robert Treat <xzilla(at)users(dot)sourceforge(dot)net> |
---|---|
To: | pgsql-general(at)postgresql(dot)org, ilejn(at)yandex(dot)ru |
Subject: | Re: ctid access is slow |
Date: | 2005-08-23 13:15:42 |
Message-ID: | 200508230915.42155.xzilla@users.sourceforge.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On Tuesday 23 August 2005 08:39, Ilja Golshtein wrote:
> Hello!
>
> Could anybody help me with this [artificial] query
>
> select ctid from aaa where ctid in (select ctid from aaa limit 10);
>
> here is explained plan
>
> Nested Loop IN Join (cost=300000000.47..300325932.99 rows=10 width=6)
> Join Filter: ("outer".ctid = "inner".ctid)
> -> Seq Scan on aaa (cost=0.00..44457.98 rows=1250998 width=6)
> -> Materialize (cost=0.47..0.57 rows=10 width=6)
> -> Subquery Scan "IN_subquery" (cost=0.00..0.46 rows=10 width=6)
> -> Limit (cost=0.00..0.36 rows=10 width=6)
> -> Seq Scan on aaa (cost=0.00..44457.98 rows=1250998
> width=6)
>
> There are 1250998 records in aaa.
>
> As you see it is pretty slow - actually this thing is faster
> even if I use oid instead of ctid.
> Inner query works promptly of course.
>
> Any clue?
>
I think using an indexed field would probably be faster for you, especially if
you have a PK on the table. Barring that, make sure you have
vacuumed/analyzed and send us explain analyze output.
--
Robert Treat
Build A Brighter Lamp :: Linux Apache {middleware} PostgreSQL
From | Date | Subject | |
---|---|---|---|
Next Message | Ilja Golshtein | 2005-08-23 13:30:31 | Re: ctid access is slow |
Previous Message | Ilja Golshtein | 2005-08-23 12:39:13 | ctid access is slow |