parameter hints to the optimizer

From: "Merlin Moncure" <merlin(dot)moncure(at)rcsonline(dot)com>
To: <pgsql-hackers(at)postgresql(dot)org>
Subject: parameter hints to the optimizer
Date: 2004-07-21 18:12:08
Message-ID: 6EE64EF3AB31D5448D0007DD34EEB34101AEE9@Herge.rcsinc.local
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

There is one problem with the optimizer that is a constant source of
frustration. When using prepared statements and functions (particularly
where function parameters are passed to a query), the optimizer often
fails to utilize an index inside a plan.

This is a well known problem because the parameter values are not known
at the time the plan is generated, making things difficult for the
optimizer.

It would be nice if 'hint' or sample parameters could be used when
creating the statement so the optimizer could use those values when
generating the plan. For example, the default parameter syntax of C++
could be borrowed (assuming this doesn't break any syntax rules).

example:
prepare my_statement prepare (character varying='abc')
as select * from t where t.k = $1;

create function my_function(int4=1234) returns [...]

Another way to deal with the problem is to defer plan generation until
the first plan execution and use the parameters from that execution.

Am I crazy? Comments?
Merlin

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Dann Corbit 2004-07-21 18:14:52 Missing header in zic.c?
Previous Message Rod Taylor 2004-07-21 17:54:48 Re: check point segments leakage ?