Optimize expresiions.

From: han(dot)holl(at)informationslogik(dot)nl
To: pgsql-general(at)postgresql(dot)org
Subject: Optimize expresiions.
Date: 2007-01-11 10:58:34
Message-ID: 200701111158.34829.han.holl@informationslogik.nl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general


Hello,

Given a table:
create table atable (
item integer;
);
and a view:
create view aview as select
item,
very_expensive_function(item) as exp,
cheap_function(item) as cheap
from atable;

Now the query:
select item from aview where exp > 0 and cheap > 0;
will lead to a sequential scan on atable with filter:
very_expensive_function(item) > 0 and cheap_function(item) > 0

The query would run much faster with the filter reordered.
Is there a way to tell the planner/optimizer that certain functions are more
expensive than others, and should be postponed in lazy evaluation ?
Or is there a hook in the system that would allow me too look at and maybe
reorder expressions before they are executed ?

Cheers,

Han Holl

Responses

Browse pgsql-general by date

  From Date Subject
Next Message km 2007-01-11 11:19:49 Re: PG compilation
Previous Message Martijn van Oosterhout 2007-01-11 10:50:17 Re: Recording insert, updates, and deletes