diff options
author | Fujii Masao <fujii@postgresql.org> | 2020-07-03 11:35:22 +0900 |
---|---|---|
committer | Fujii Masao <fujii@postgresql.org> | 2020-07-03 11:35:22 +0900 |
commit | d1763ea8c9c32837d373a196ed0c2e1256a55824 (patch) | |
tree | d37d50b0563a0d1fc5f230240ea7e9f9b0cd8a36 /doc/src | |
parent | 947456a823d6b0973b68c6b38c8623a0504054e7 (diff) | |
download | postgresql-d1763ea8c9c32837d373a196ed0c2e1256a55824.tar.gz postgresql-d1763ea8c9c32837d373a196ed0c2e1256a55824.zip |
Change default of pg_stat_statements.track_planning to off.
Since v13 pg_stat_statements is allowed to track the planning time of
statements when track_planning option is enabled. Its default was on.
But this feature could cause more terrible spinlock contentions in
pg_stat_statements. As a result of this, Robins Tharakan reported that
v13 beta1 showed ~45% performance drop at high DB connection counts
(when compared with v12.3) during fully-cached SELECT-only test using
pgbench.
To avoid this performance regression by the default setting,
this commit changes default of pg_stat_statements.track_planning to off.
Back-patch to v13 where pg_stat_statements.track_planning was introduced.
Reported-by: Robins Tharakan
Author: Fujii Masao
Reviewed-by: Julien Rouhaud
Discussion: https://postgr.es/m/2895b53b033c47ccb22972b589050dd9@EX13D05UWC001.ant.amazon.com
Diffstat (limited to 'doc/src')
-rw-r--r-- | doc/src/sgml/pgstatstatements.sgml | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/doc/src/sgml/pgstatstatements.sgml b/doc/src/sgml/pgstatstatements.sgml index a13e28a84cc..430d8bf07c4 100644 --- a/doc/src/sgml/pgstatstatements.sgml +++ b/doc/src/sgml/pgstatstatements.sgml @@ -101,6 +101,8 @@ </para> <para> Number of times the statement was planned + (if <varname>pg_stat_statements.track_planning</varname> is enabled, + otherwise zero) </para></entry> </row> @@ -110,6 +112,8 @@ </para> <para> Total time spent planning the statement, in milliseconds + (if <varname>pg_stat_statements.track_planning</varname> is enabled, + otherwise zero) </para></entry> </row> @@ -119,6 +123,8 @@ </para> <para> Minimum time spent planning the statement, in milliseconds + (if <varname>pg_stat_statements.track_planning</varname> is enabled, + otherwise zero) </para></entry> </row> @@ -128,6 +134,8 @@ </para> <para> Maximum time spent planning the statement, in milliseconds + (if <varname>pg_stat_statements.track_planning</varname> is enabled, + otherwise zero) </para></entry> </row> @@ -137,6 +145,8 @@ </para> <para> Mean time spent planning the statement, in milliseconds + (if <varname>pg_stat_statements.track_planning</varname> is enabled, + otherwise zero) </para></entry> </row> @@ -145,7 +155,10 @@ <structfield>stddev_plan_time</structfield> <type>double precision</type> </para> <para> - Population standard deviation of time spent planning the statement, in milliseconds + Population standard deviation of time spent planning the statement, + in milliseconds + (if <varname>pg_stat_statements.track_planning</varname> is enabled, + otherwise zero) </para></entry> </row> @@ -594,7 +607,7 @@ <para> <varname>pg_stat_statements.track_planning</varname> controls whether planning operations and duration are tracked by the module. - The default value is <literal>on</literal>. + The default value is <literal>off</literal>. Only superusers can change this setting. </para> </listitem> |