Re: postgres slower on nested queries

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Martijn van Oosterhout <kleptog(at)svana(dot)org>
Cc: Alexander Elgert <alexander_elgert(at)adiva(dot)de>, pgsql-general(at)postgresql(dot)org
Subject: Re: postgres slower on nested queries
Date: 2007-03-07 15:26:32
Message-ID: 19016.1173281192@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Martijn van Oosterhout <kleptog(at)svana(dot)org> writes:
> ... Your real problem is that
> you're using the information_schema which has to do all sorts of extra
> work for standards compliance. If you don't need that you're going to
> be much better off just using the system catalogs.

To put that in some perspective:

regression=> create table fooey(f1 int);
CREATE TABLE
regression=> \timing
Timing is on.
regression=> select column_name from information_schema.columns where table_nam
e = 'fooey';
column_name
-------------
f1
(1 row)

Time: 84.388 ms
regression=> select attname from pg_attribute where attrelid = 'fooey'::regclas
s and attnum > 0 and not attisdropped;
attname
---------
f1
(1 row)

Time: 7.834 ms
regression=>

When you look at the plans involved (information_schema.columns is an
8-way join) the surprising thing is not that the first query is so slow,
it's that it's so fast.

regards, tom lane

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Tom Lane 2007-03-07 15:29:07 Re: Default Cast type
Previous Message Floyd Shackelford 2007-03-07 14:29:31 foreign key support for inheritance