mirror of
https://github.com/postgres/postgres.git
synced 2025-09-02 04:21:28 +03:00
Add delay time to VACUUM/ANALYZE (VERBOSE) and autovacuum logs.
Commit bb8dff9995
added this information to the
pg_stat_progress_vacuum and pg_stat_progress_analyze system views.
This commit adds the same information to the output of VACUUM and
ANALYZE with the VERBOSE option and to the autovacuum logs.
Suggested-by: Masahiro Ikeda <ikedamsh@oss.nttdata.com>
Author: Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
Discussion: https://postgr.es/m/ZmaXmWDL829fzAVX%40ip-10-97-1-34.eu-west-3.compute.internal
This commit is contained in:
@@ -8267,9 +8267,12 @@ COPY postgres_log FROM '/full/path/to/logfile.csv' WITH csv;
|
|||||||
platforms. You can use the <xref linkend="pgtesttiming"/> tool to
|
platforms. You can use the <xref linkend="pgtesttiming"/> tool to
|
||||||
measure the overhead of timing on your system. Cost-based vacuum delay
|
measure the overhead of timing on your system. Cost-based vacuum delay
|
||||||
timing information is displayed in
|
timing information is displayed in
|
||||||
<link linkend="vacuum-progress-reporting"><structname>pg_stat_progress_vacuum</structname></link>
|
<link linkend="vacuum-progress-reporting"><structname>pg_stat_progress_vacuum</structname></link>,
|
||||||
and
|
<link linkend="analyze-progress-reporting"><structname>pg_stat_progress_analyze</structname></link>,
|
||||||
<link linkend="analyze-progress-reporting"><structname>pg_stat_progress_analyze</structname></link>.
|
in the output of <xref linkend="sql-vacuum"/> when the
|
||||||
|
<literal>VERBOSE</literal> option is used, and by autovacuum for
|
||||||
|
auto-vacuums and auto-analyzes when
|
||||||
|
<xref linkend="guc-log-autovacuum-min-duration"/> is set.
|
||||||
Only superusers and users with the appropriate <literal>SET</literal>
|
Only superusers and users with the appropriate <literal>SET</literal>
|
||||||
privilege can change this setting.
|
privilege can change this setting.
|
||||||
</para>
|
</para>
|
||||||
|
@@ -1091,6 +1091,17 @@ heap_vacuum_rel(Relation rel, VacuumParams *params,
|
|||||||
istat->pages_deleted,
|
istat->pages_deleted,
|
||||||
istat->pages_free);
|
istat->pages_free);
|
||||||
}
|
}
|
||||||
|
if (track_cost_delay_timing)
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
* We bypass the changecount mechanism because this value is
|
||||||
|
* only updated by the calling process. We also rely on the
|
||||||
|
* above call to pgstat_progress_end_command() to not clear
|
||||||
|
* the st_progress_param array.
|
||||||
|
*/
|
||||||
|
appendStringInfo(&buf, _("delay time: %.3f ms\n"),
|
||||||
|
(double) MyBEEntry->st_progress_param[PROGRESS_VACUUM_DELAY_TIME] / 1000000.0);
|
||||||
|
}
|
||||||
if (track_io_timing)
|
if (track_io_timing)
|
||||||
{
|
{
|
||||||
double read_ms = (double) (pgStatBlockReadTime - startreadtime) / 1000;
|
double read_ms = (double) (pgStatBlockReadTime - startreadtime) / 1000;
|
||||||
|
@@ -808,6 +808,15 @@ do_analyze_rel(Relation onerel, VacuumParams *params,
|
|||||||
get_database_name(MyDatabaseId),
|
get_database_name(MyDatabaseId),
|
||||||
get_namespace_name(RelationGetNamespace(onerel)),
|
get_namespace_name(RelationGetNamespace(onerel)),
|
||||||
RelationGetRelationName(onerel));
|
RelationGetRelationName(onerel));
|
||||||
|
if (track_cost_delay_timing)
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
* We bypass the changecount mechanism because this value is
|
||||||
|
* only updated by the calling process.
|
||||||
|
*/
|
||||||
|
appendStringInfo(&buf, _("delay time: %.3f ms\n"),
|
||||||
|
(double) MyBEEntry->st_progress_param[PROGRESS_ANALYZE_DELAY_TIME] / 1000000.0);
|
||||||
|
}
|
||||||
if (track_io_timing)
|
if (track_io_timing)
|
||||||
{
|
{
|
||||||
double read_ms = (double) (pgStatBlockReadTime - startreadtime) / 1000;
|
double read_ms = (double) (pgStatBlockReadTime - startreadtime) / 1000;
|
||||||
|
Reference in New Issue
Block a user