From: | Heikki Linnakangas <heikki(at)enterprisedb(dot)com> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | pgsql-hackers(at)postgreSQL(dot)org |
Subject: | Re: Function execution costs 'n all that |
Date: | 2007-01-15 17:11:05 |
Message-ID: | 45ABB5A9.6080201@enterprisedb.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Tom Lane wrote:
> Heikki Linnakangas <heikki(at)enterprisedb(dot)com> writes:
>> A simple constant would probably be enough. If we want anything fancier
>> than that, it should be up to the author of the function to define the
>> cost model as well. I'm envisioning that you could attach a custom cost
>> function to a user-defined function which would return the estimated CPU
>> cost. And # of rows returned for a set-returning function.
>
> But what will such an estimation function work on? In general the
> planner does not have the value(s) that will be passed to the actual
> function at runtime. It might have expressions or estimates but
> those data structures are certainly not something we could pass to
> non-C-coded functions. Are we willing to restrict these functions
> to being coded in C, as selectivity estimation functions are?
Yeah, I don't know. If the planner knows the actual value, that would
certainly be the easiest for the UDF writer to work with. Anything more
than that gets really complicated.
> If we go this route it seems like we'll need four more columns in
> pg_proc (cost estimation function OID, rowcount estimation function OID,
> fallback cost constant, fallback rowcount constant).
What would the fallbacks be for?
> BTW, I'm thinking that a "cost constant" probably ought to be measured
> in units of cpu_operator_cost. The default for built-in functions would
> thus be 1, at least till such time as someone wants to refine the
> estimates. We'd probably want the default for PL and SQL functions to
> be 10 or 100 or so.
Agreed.
--
Heikki Linnakangas
EnterpriseDB http://www.enterprisedb.com
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2007-01-15 17:19:03 | Re: Function execution costs 'n all that |
Previous Message | Martijn van Oosterhout | 2007-01-15 17:04:02 | Re: xml type and encodings |