1
0
mirror of https://github.com/postgres/postgres.git synced 2025-07-30 11:03:19 +03:00

pg_stat_statements: Track I/O timing for temporary file blocks

This commit adds two new columns to pg_stat_statements, called
temp_blk_read_time and temp_blk_write_time.  Those columns respectively
show the time spent to read and write temporary file blocks on disk,
whose tracking has been added in efb0ef9.  This information is
available when track_io_timing is enabled, like blk_read_time and
blk_write_time.

pg_stat_statements is updated to version to 1.10 as an effect of the
newly-added columns.  Tests for the upgrade path 1.9->1.10 are added.

PGSS_FILE_HEADER is bumped for the new stats file format.

Author: Masahiko Sawada
Reviewed-by: Georgios Kokolatos, Melanie Plageman, Julien Rouhaud,
Ranier Vilela
Discussion: https://postgr.es/m/CAD21AoAJgotTeP83p6HiAGDhs_9Fw9pZ2J=_tYTsiO5Ob-V5GQ@mail.gmail.com
This commit is contained in:
Michael Paquier
2022-04-08 13:12:07 +09:00
parent a6baa4badd
commit 76cbf7edb6
7 changed files with 237 additions and 9 deletions

View File

@ -338,7 +338,7 @@
<structfield>blk_read_time</structfield> <type>double precision</type>
</para>
<para>
Total time the statement spent reading blocks, in milliseconds
Total time the statement spent reading data file blocks, in milliseconds
(if <xref linkend="guc-track-io-timing"/> is enabled, otherwise zero)
</para></entry>
</row>
@ -348,11 +348,33 @@
<structfield>blk_write_time</structfield> <type>double precision</type>
</para>
<para>
Total time the statement spent writing blocks, in milliseconds
Total time the statement spent writing data file blocks, in milliseconds
(if <xref linkend="guc-track-io-timing"/> is enabled, otherwise zero)
</para></entry>
</row>
<row>
<entry role="catalog_table_entry"><para role="column_definition">
<structfield>temp_blk_read_time</structfield> <type>double precision</type>
</para>
<para>
Total time the statement spent reading temporary file blocks, in
milliseconds (if <xref linkend="guc-track-io-timing"/> is enabled,
otherwise zero)
</para></entry>
</row>
<row>
<entry role="catalog_table_entry"><para role="column_definition">
<structfield>temp_blk_write_time</structfield> <type>double precision</type>
</para>
<para>
Total time the statement spent writing temporary file blocks, in
milliseconds (if <xref linkend="guc-track-io-timing"/> is enabled,
otherwise zero)
</para></entry>
</row>
<row>
<entry role="catalog_table_entry"><para role="column_definition">
<structfield>wal_records</structfield> <type>bigint</type>