Skip site navigation (1) Skip section navigation (2)

Re: Avoiding bad prepared-statement plans.

From: Jeroen Vermeulen <jtv(at)xs4all(dot)nl>
To: Robert Haas <robertmhaas(at)gmail(dot)com>
Cc: Greg Stark <gsstark(at)mit(dot)edu>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Bart Samwel <bart(at)samwel(dot)tk>, Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com>, pgsql-hackers(at)postgresql(dot)org
Subject: Re: Avoiding bad prepared-statement plans.
Date: 2010-02-26 02:48:05
Message-ID: 4B873665.20208@xs4all.nl (view raw or flat)
Thread:
Lists: pgsql-hackers
Robert Haas wrote:
> On Wed, Feb 17, 2010 at 5:52 PM, Jeroen Vermeulen <jtv(at)xs4all(dot)nl> wrote:
>> I may have cut this out of my original email for brevity... my impression is
>> that the planner's estimate is likely to err on the side of scalability, not
>> best-case response time; and that this is more likely to happen than an
>> optimistic plan going bad at runtime.
> 
> Interestingly, most of the mistakes that I have seen are in the
> opposite direction.

I guess there's not much we can do about those, except decide after 
running that it's worth optimizing for specific values.


>> Yeb points out a devil in the details though: the cost estimate is unitless.
>>  We'd have to have some orders-of-magnitude notion of how the estimates fit
>> into the picture of real performance.
> 
> I'm not sure to what extent you can assume that the cost is
> proportional to the execution time.  I seem to remember someone
> (Peter?) arguing that they're not related by any fixed ratio, partly
> because things like page costs vs. cpu costs didn't match physical
> reality, and that in fact some attempts to gather better empirically
> better values for things like random_page_cost and seq_page_cost
> actually ended up making the plans worse rather than better.  It would
> be nice to see some research in this area...

Getting representative workloads and machine configurations may make 
that hard.  :/

But all we really want is a check for really obscene costs, as an extra 
stopgap so we don't have to wait for the thing to execute before we 
decide it's too costly.  Surely there must be some line we can draw.


Jeroen

In response to

Responses

pgsql-hackers by date

Next:From: Bruce MomjianDate: 2010-02-26 02:49:10
Subject: Re: visibility maps and heap_prune
Previous:From: Bruce MomjianDate: 2010-02-26 02:43:44
Subject: Re: Why isn't stats_temp_directory automatically created?

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group