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
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 |