Home Explore Blog CI



postgresql

13th chunk of `doc/src/sgml/pgstatstatements.sgml`
402edaabe169ed0af06ad6c96dcf29f56559aa6ccf59abfe0000000100000e6c
 <command>SELECT</command>, <command>INSERT</command>,
      <command>UPDATE</command>, <command>DELETE</command>, and <command>MERGE</command>.
      The default value is <literal>on</literal>.
      Only superusers can change this setting.
     </para>
    </listitem>
   </varlistentry>

   <varlistentry>
    <term>
     <varname>pg_stat_statements.track_planning</varname> (<type>boolean</type>)
     <indexterm>
      <primary><varname>pg_stat_statements.track_planning</varname> configuration parameter</primary>
     </indexterm>
    </term>

    <listitem>
     <para>
      <varname>pg_stat_statements.track_planning</varname> controls whether
      planning operations and duration are tracked by the module.
      Enabling this parameter may incur a noticeable performance penalty,
      especially when statements with identical query structure are executed
      by many concurrent connections which compete to update a small number of
      <structname>pg_stat_statements</structname> entries.
      The default value is <literal>off</literal>.
      Only superusers can change this setting.
     </para>
    </listitem>
   </varlistentry>

   <varlistentry>
    <term>
     <varname>pg_stat_statements.save</varname> (<type>boolean</type>)
     <indexterm>
      <primary><varname>pg_stat_statements.save</varname> configuration parameter</primary>
     </indexterm>
    </term>

    <listitem>
     <para>
      <varname>pg_stat_statements.save</varname> specifies whether to
      save statement statistics across server shutdowns.
      If it is <literal>off</literal> then statistics are not saved at
      shutdown nor reloaded at server start.
      The default value is <literal>on</literal>.
      This parameter can only be set in the <filename>postgresql.conf</filename>
      file or on the server command line.
     </para>
    </listitem>
   </varlistentry>
  </variablelist>

  <para>
   The module requires additional shared memory proportional to
   <varname>pg_stat_statements.max</varname>.  Note that this
   memory is consumed whenever the module is loaded, even if
   <varname>pg_stat_statements.track</varname> is set to <literal>none</literal>.
  </para>

  <para>
   These parameters must be set in <filename>postgresql.conf</filename>.
   Typical usage might be:

<programlisting>
# postgresql.conf
shared_preload_libraries = 'pg_stat_statements'

compute_query_id = on
pg_stat_statements.max = 10000
pg_stat_statements.track = all
</programlisting>
  </para>
 </sect2>

 <sect2 id="pgstatstatements-sample-output">
  <title>Sample Output</title>

<screen>
bench=# SELECT pg_stat_statements_reset();

$ pgbench -i bench
$ pgbench -c10 -t300 bench

bench=# \x
bench=# SELECT query, calls, total_exec_time, rows, 100.0 * shared_blks_hit /
               nullif(shared_blks_hit + shared_blks_read, 0) AS hit_percent
          FROM pg_stat_statements ORDER BY total_exec_time DESC LIMIT 5;
-[ RECORD 1 ]---+--------------------------------------------------&zwsp;------------------
query           | UPDATE pgbench_branches SET bbalance = bbalance + $1 WHERE bid = $2
calls           | 3000
total_exec_time | 25565.855387
rows            | 3000
hit_percent     | 100.0000000000000000
-[ RECORD 2 ]---+--------------------------------------------------&zwsp;------------------
query           | UPDATE pgbench_tellers SET tbalance = tbalance + $1 WHERE tid = $2
calls           | 3000
total_exec_time | 20756.669379
rows            | 3000
hit_percent     | 100.0000000000000000
-[ RECORD 3 ]---+--------------------------------------------------&zwsp;------------------
query           | copy pgbench_accounts from stdin
calls           | 1
total_exec_time

Title: pg_stat_statements Configuration and Sample Output
Summary
The pg_stat_statements module has several configuration parameters, including pg_stat_statements.save, pg_stat_statements.track_planning, and others, which control various aspects of statement statistics collection, and the module requires additional shared memory proportional to pg_stat_statements.max, with sample output demonstrating how to use the module to track and analyze SQL statement execution statistics.