Thread: Query Progress Estimator

Query Progress Estimator

From
Anuj Tripathi
Date:
Hi
I am trying to implement Query Progress estimator in postgres for 
queries with long run time.I am looking for info regarding the number of 
tuples already processsed by a running query .
I would be very thankful if someone can suggest where can i find it or 
the data structure that holds the value.      Right now I am exploring postgres using ddd ( debugger ).Can 
anyone suggest a better utility /editor/tool for exploring the same in a 
better way ?
I am working Fedora core 3 Linux
Thanks and regards
Anuj Tripathi



Re: Query Progress Estimator

From
Martijn van Oosterhout
Date:
On Sun, Oct 23, 2005 at 02:04:02AM +0530, Anuj Tripathi wrote:
> Hi
> I am trying to implement Query Progress estimator in postgres for
> queries with long run time.I am looking for info regarding the number of
> tuples already processsed by a running query .
> I would be very thankful if someone can suggest where can i find it or
> the data structure that holds the value.

Currently, that information is only tracked on a per-node level in an
EXPLAIN ANALYZE query. And the total number of tuples output so far is
stored in a local variable in ExecutePlan(), so you're have to change
something if you want to get it everywhere...

>       Right now I am exploring postgres using ddd ( debugger ).Can
> anyone suggest a better utility /editor/tool for exploring the same in a
> better way ?

Can't help you there, I generally use a combination of grep, less, joe
and gdb but I'm not sure I would recommend that to anyone...

Have a nice day,
--
Martijn van Oosterhout   <kleptog@svana.org>   http://svana.org/kleptog/
> Patent. n. Genius is 5% inspiration and 95% perspiration. A patent is a
> tool for doing 5% of the work and then sitting around waiting for someone
> else to do the other 95% so you can sue them.

Re: Query Progress Estimator

From
Simon Riggs
Date:
On Sun, 2005-10-23 at 02:04 +0530, Anuj Tripathi wrote:
> Hi
> I am trying to implement Query Progress estimator in postgres for 
> queries with long run time.I am looking for info regarding the number of 
> tuples already processsed by a running query .
> I would be very thankful if someone can suggest where can i find it or 
> the data structure that holds the value.
>        Right now I am exploring postgres using ddd ( debugger ).Can 
> anyone suggest a better utility /editor/tool for exploring the same in a 
> better way ?

You should read up on how the Executor works before using ddd. You need
to see the bigger picture first. In some plans, nodes are completely
executed before the next higher node begins the main phase of its
execution - in other cases all nodes are active simultaneously.

While it is executing, an executor node is the only place that knows how
far through its own task it is. That in itself is not much guide to how
the whole query is doing since you need to accumulate these individual
viewpoints.

In my understanding there isn't a supervisor, each node recursively
calls the nodes that need to supply it with data. You'd need some kind
of concept such as that to allow feedback from individual nodes to be
reconciled into a total picture for the query.

Incidentally, this is related to the question: "How much memory is my
query currently using?" (as opposed to "How much memory is currently
allocated?", which is of course externally measurable). 

Best Regards, Simon Riggs