Re: Query much slower when run from postgres function

From: decibel <decibel(at)decibel(dot)org>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: fche(at)redhat(dot)com (Frank Ch(dot) Eigler), Mario Splivalo <mario(dot)splivalo(at)megafon(dot)hr>, pgsql-performance(at)postgresql(dot)org
Subject: Re: Query much slower when run from postgres function
Date: 2009-03-14 14:42:22
Message-ID: E6757F02-1F73-4DDE-A5D4-0606CC517B1C@decibel.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc pgsql-performance

On Mar 10, 2009, at 12:20 PM, Tom Lane wrote:
> fche(at)redhat(dot)com (Frank Ch. Eigler) writes:
>> For a prepared statement, could the planner produce *several* plans,
>> if it guesses great sensitivity to the parameter values? Then it
>> could choose amongst them at run time.
>
> We've discussed that in the past. "Choose at runtime" is a bit more
> easily said than done though --- you can't readily flip between plan
> choices part way through, if you've already emitted some result rows.

True, but what if we planned for both high and low cardinality cases,
assuming that pg_stats indicated both were a possibility? We would
have to store multiple plans for one prepared statement, which
wouldn't work well for more complex queries (if you did high and low
cardinality estimates for each table you'd end up with 2^r plans,
where r is the number of relations), so we'd need a way to cap it
somehow. Of course, whether that's easier than having the ability to
throw out a current result set and start over with a different plan
is up for debate...

On a related note, I wish there was a way to tell plpgsql not to pre-
plan a query. Sure, you can use EXECUTE, but building the query plan
is a serious pain in the rear.
--
Decibel!, aka Jim C. Nasby, Database Architect decibel(at)decibel(dot)org
Give your computer some brain candy! www.distributed.net Team #1828

In response to

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message Peter 2009-03-15 07:10:31 Re: Totally weird behaviour in org.postgresql.Driver
Previous Message decibel 2009-03-14 14:31:31 Re: Query much slower when run from postgres function

Browse pgsql-performance by date

  From Date Subject
Next Message decibel 2009-03-14 14:47:53 Re: Query performance over a large proportion of data
Previous Message decibel 2009-03-14 14:31:31 Re: Query much slower when run from postgres function