Re: BUG #16109: Postgres planning time is high across version (Expose buffer usage during planning in EXPLAIN)

From: Justin Pryzby <pryzby(at)telsasoft(dot)com>
To: Julien Rouhaud <rjuju123(at)gmail(dot)com>
Cc: Andres Freund <andres(at)anarazel(dot)de>, pgsql-hackers(at)lists(dot)postgresql(dot)org
Subject: Re: BUG #16109: Postgres planning time is high across version (Expose buffer usage during planning in EXPLAIN)
Date: 2020-01-24 05:55:34
Message-ID: 20200124055534.GM13621@telsasoft.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs pgsql-hackers

On Wed, Nov 13, 2019 at 11:39:04AM +0100, Julien Rouhaud wrote:
> (moved to -hackers)
>
> On Tue, Nov 12, 2019 at 9:55 PM Andres Freund <andres(at)anarazel(dot)de> wrote:
> >
> > This last point is more oriented towards other PG developers: I wonder
> > if we ought to display buffer statistics for plan time, for EXPLAIN
> > (BUFFERS). That'd surely make it easier to discern cases where we
> > e.g. access the index and scan a lot of the index from cases where we
> > hit some CPU time issue. We should easily be able to get that data, I
> > think, we already maintain it, we'd just need to compute the diff
> > between pgBufferUsage before / after planning.
>
> That would be quite interesting to have. I attach as a reference a
> quick POC patch to implement it:

+1

+ result.shared_blks_hit = stop->shared_blks_hit - start->shared_blks_hit;
+ result.shared_blks_read = stop->shared_blks_read - start->shared_blks_read;
+ result.shared_blks_dirtied = stop->shared_blks_dirtied -
+ start->shared_blks_dirtied;
[...]

I think it would be more readable and maintainable using a macro:

#define CALC_BUFF_DIFF(x) result.##x = stop->##x - start->##x
CALC_BUFF_DIFF(shared_blks_hit);
CALC_BUFF_DIFF(shared_blks_read);
CALC_BUFF_DIFF(shared_blks_dirtied);
...
#undefine CALC_BUFF_DIFF

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Magnus Hagander 2020-01-24 09:05:20 Re: BUG #16225: EL8 - PGDG postgresql* packages conflict with appstream postgresql packages
Previous Message Andrew Roffey 2020-01-23 21:53:35 Re: BUG #16225: EL8 - PGDG postgresql* packages conflict with appstream postgresql packages

Browse pgsql-hackers by date

  From Date Subject
Next Message Michael Paquier 2020-01-24 05:56:45 Re: Add pg_file_sync() to adminpack
Previous Message Michael Paquier 2020-01-24 05:50:54 Re: [Patch] pg_rewind: options to use restore_command from recovery.conf or command line