From: | Brian Hurt <bhurt(at)janestcapital(dot)com> |
---|---|
To: | Neil Conway <neilc(at)samurai(dot)com> |
Cc: | Richard Troy <rtroy(at)ScienceTools(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, pgsql-hackers(at)postgreSQL(dot)org |
Subject: | Re: Function execution costs 'n all that |
Date: | 2007-01-15 19:45:46 |
Message-ID: | 45ABD9EA.3060703@janestcapital.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Neil Conway wrote:
>On Mon, 2007-01-15 at 10:51 -0800, Richard Troy wrote:
>
>
>>I therefore propose that the engine evaluate -
>>benchmark, if you will - all functions as they are ingested, or
>>vacuum-like at some later date (when valid data for testing may exist),
>>and assign a cost relative to what it already knows - the built-ins, for
>>example.
>>
>>
>
>That seems pretty unworkable. It is unsafe, for one: evaluating a
>function may have side effects (inside or outside the database), so the
>DBMS cannot just invoke user-defined functions at whim. Also, the
>relationship between a function's arguments and its performance will
>often be highly complex -- it would be very difficult, not too mention
>computationally infeasible, to reconstruct that relationship
>automatically, especially without any real knowledge about the
>function's behavior.
>
>
Non-developer here, but we use a lot of plpgsql functions at work. And
the functions we use fall into two broad, ill-defined catagories-
"expensive" functions and "cheap" functions. What I'd like as a user is
some way to tell the planner "this function is expensive- prefer plans
which call this function less even if they're otherwise more expensive"
or "this function is cheap, prefer plans that are otherwise less
expensive even if they call this function more often". Precise cost
estimates aren't that important, IMHO.
Brian
From | Date | Subject | |
---|---|---|---|
Next Message | Richard Troy | 2007-01-15 19:47:10 | Re: Function execution costs 'n all that |
Previous Message | Neil Conway | 2007-01-15 18:54:48 | Re: Function execution costs 'n all that |