performance and number of selected columns

Started by Dirk Lutzebaeckalmost 26 years ago3 messagesgeneral
Jump to latest
#1Dirk Lutzebaeck
lutzeb@aeccom.com

Hi,

say I have three tables a,b,c with lots of columns (say 10 for each
table). Using psql command line, why does

SELECT a.*,b.*,c.* FROM a,b,c

takes much more longer (in my specifc case 3 times) than only
selecting one column like

SELECT a.oid, b.oid, c.oid FROM a,b,c.

This is on 7.0. Can I play with buffer sizes? Indexes exist on most
of the columns. Columns in the second line can be arbitrary.

Dirk

#2Dirk Lutzebaeck
lutzeb@aeccom.com
In reply to: Dirk Lutzebaeck (#1)
Re: performance and number of selected columns

Dirk Lutzebaeck writes:

Hi,

say I have three tables a,b,c with lots of columns (say 10 for each
table). Using psql command line, why does

SELECT a.*,b.*,c.* FROM a,b,c

takes much more longer (in my specifc case 3 times) than only
selecting one column like

SELECT a.oid, b.oid, c.oid FROM a,b,c.

This is on 7.0. Can I play with buffer sizes? Indexes exist on most
of the columns. Columns in the second line can be arbitrary.

Two things two add:

- EXPLAIN shosw the same results in both cases
- currently I was working with ~ 500 rows

Dirk

#3Tom Lane
tgl@sss.pgh.pa.us
In reply to: Dirk Lutzebaeck (#1)
Re: performance and number of selected columns

Dirk Lutzebaeck <lutzeb@aeccom.com> writes:

say I have three tables a,b,c with lots of columns (say 10 for each
table). Using psql command line, why does
SELECT a.*,b.*,c.* FROM a,b,c
takes much more longer (in my specifc case 3 times) than only
selecting one column like
SELECT a.oid, b.oid, c.oid FROM a,b,c.

I'd guess you are simply looking at the increased time to transfer
the additional data to the frontend, format it for display, etc.
With a pure cartesian-product join like that (no WHERE), the backend
is basically going to be spitting out tuples as fast as it can read
them from disk...

regards, tom lane