I'm wondering whether columns, in the select list of a view that is used in a join, which are not used either as join criteria or in the select list of the overall query, effect the performance of the query.

In other words supposed I define a view something like

CREATE view MyView AS SELECT a,b, c, d, e, f, g FROM (several tables joined together)

Assume for the sake of simplicity there are no aggregates or such, we're just joining tables, and getting a bunch of columns back each of the various tables.

I then then perform a query something like

SELECT v.a, x.h, y.i FROM MyView as v JOIN otherTable as x on (x.m = v.a) JOIN yetAnotherTable as y on (y.n=v.a)

Does all the extra clutter of b,c,d,e,f in MyView affect the performance of the query by taking up extra space in memory during the joins or is the optimizer smart enough to realize that they aren't needed and evoke the query as if MyView were really defined as

CREATE view MyView AS SELECT a FROM  (several tables joined together)?

Thanks,

Eric

--
Sent via pgsql-performance mailing list (pgsql-performance@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-performance

Reply via email to