On Sun, 2006-12-10 at 09:28 -0500, Neil Conway wrote:
> On Sun, 2006-12-10 at 13:00 +0000, Simon Riggs wrote:
> > With that requirement in mind, how about something simple like:
> >
> > explain_analyze_timeout = n
> >
> > When timeout is reached the EA returns results as if it had finished
> > executing normally, though with some additional text to make it very
> > clear that the displayed results are partial execution only.
>
> Sounds like a bit of a kludge, IMHO.
Without a doubt. I was hoping for some further inspiration...
How about any of these?
EXPLAIN [ ANALYZE [TIME LIMIT n]] [ VERBOSE ] statement
EXPLAIN [ ANALYZE [SHOW STATISTICS AFTER n]] [ VERBOSE ] statement
Neither of which need new keywords.
> EXPLAIN ANALYZE isn't designed to
> provide online feedback about the execution of a query, which I think is
> the real feature here. There has been prior discussion about how to do
> online progress indication for queries in general[1] -- I think some
> sort of "online EXPLAIN ANALYZE" would be a natural part of such a
> feature.
>
> -Neil
>
> [1] http://developer.postgresql.org/index.php/Query_progress_indication
Well, that all looks good and can see I'd want all of those things.
The EA case is pretty straightforward though; we don't really need
regular feedback as much as *any* feedback. So, I'm seeing it as a very
simple case of the overall requirement. It's also a special case in that
the output from a partial EA needs to be the same shape as a normal EA.
Query progress data would likely be a different shape, no? You'd need
some estimates of eventual time based upon a re-evaluation of the
original estimates based upon things learned so far during execution.
i.e. at start we thought this loop would be called X times (planner
estimate), so far its been called Y times (EA actual) and based upon
that we now think it will be called Z times. So I'm thinking of
enhancing EA to provide partial results rather than go for the Full
Monty just yet.
BTW, can anybody edit the Wiki? I didn't realise it existed.
-- Simon Riggs EnterpriseDB http://www.enterprisedb.com