On Wed, Feb 09, 2005 at 04:34:30PM -0700, Ed L. wrote:
> Thinking about how to make this analysis faster and less labor-
> intensive ...
> 
> I know of no other way to get the detailed performance data provided
> via EXPLAIN ANALYZE without just painfully disassembling a query.   
> It seems it would be pretty useful w/r/t performance monitoring to 
> be able to retrieve such performance numbers as those in EXPLAIN 
> ANALYZE in a rowset via query.  That would seem to enable automated
> identification of things like single rows taking 4.63ms to retrieve.
> I can think of a number of application queries for which I would 
> like to do this sort of analysis routinely across a bunch of 
> database clusters.  I guess one could just parse the explain output
> in the meantime but, dreaming a bit here, for example,
> 
>    SELECT node_id, op, parent_node_id, index, relation,
>           cost_first, cost_last, cost_rows, cost_width,
>           actual_first, actual_last, actual_rows, actual_loops,
>           index_condition
>    FROM pg_explain_analyze('SELECT * FROM foo');
> 
> with output similar to 
> 
>  node_id |     op      | parent_node_id ...  actual_last | actual_rows | 
> actual_loops ...
> ---------+-------------+----------------...--------------+-------------+--------------...
>       21 | Nested Loop |             20 ...        72.80 |        1014 | 1
>       22 | Nested Loop |             21 ...        46.51 |        1014 | 1
> ...
>       34 | Index Scan  |             21 ...         4.63 |           0 | 1014
> ...
> 
> Then, as a routine measure, catch those cases like this one,
> 
>     SELECT sql, op, index, relation, actual_first
>     FROM pg_explain_analyze('SELECT * FROM foo')
>     WHERE op = 'Index Scan'
>       AND actual_first > 1.0;
> 
> Thankfully, I'm sure there are a lot of skilled postgresql'ers 
> just sitting around right now wishing they had something to do.  

Well, I'm a little bored; I've got tomorrow off, and this seems like
it might be doable in the kind of high-level PL/Foo's with which I'm
familiar.  What would the returning rowtype for
pg_explain_analyze(TEXT) be?

Cheers,
D
-- 
David Fetter [EMAIL PROTECTED] http://fetter.org/
phone: +1 510 893 6100   mobile: +1 415 235 3778

Remember to vote!

---------------------------(end of broadcast)---------------------------
TIP 2: you can get off all lists at once with the unregister command
    (send "unregister YourEmailAddressHere" to [EMAIL PROTECTED])

Reply via email to