Re: Showing I/O timings spent reading/writing temp buffers in EXPLAIN

Michael Paquier <michael@paquier.xyz>

From: Michael Paquier <michael@paquier.xyz>
To: Julien Rouhaud <rjuju123@gmail.com>
Cc: Masahiko Sawada <sawada.mshk@gmail.com>, gkokolatos@pm.me, Ranier Vilela <ranier.vf@gmail.com>, PostgreSQL-development <pgsql-hackers@postgresql.org>, depesz@depesz.com
Date: 2022-04-07T06:58:46Z
Lists: pgsql-hackers
On Tue, Apr 05, 2022 at 11:57:14AM +0800, Julien Rouhaud wrote:
> This is a minor detail and the rest of the patch looks good to me, so I'm
> marking the patch as Ready for Committer!

@@ -440,10 +442,14 @@ BufFileLoadBuffer(BufFile *file)
+   if (track_io_timing)
+       INSTR_TIME_SET_CURRENT(io_start);

In places where we don't have clock_gettime(), this means using
gettimeofday().  I would not underestimate the performance impact of
such a change, even if track_io_timing is already known to have a
certain overhead on some platforms.
--
Michael

Commits

  1. pg_stat_statements: Track I/O timing for temporary file blocks

  2. Track I/O timing for temporary file blocks in EXPLAIN (BUFFERS)

  3. Force track_io_timing off in explain.sql to avoid failures when enabled.