doc: Mention de-normalization of deallocated entries in pg_stat_statements

The current implementation of query normalization in pg_stat_statements
is optimistic.  If an entry is deallocated between the post-analyze hook
and the planner and/or execution hook, it can be possible to find query
strings with literal constant values (like "SELECT 1, 2") rather than
their normalized flavor (like "SELECT $1, $2").

This commit adds in the documentation a paragraph about this limitation,
and that this risk can be reduced by increasing pg_stat_statements.max,
particularly if pg_stat_statements_info reports a high number of
deallocations.

Author: Sami Imseih
Discussion: https://postgr.es/m/9CFF3512-355B-4676-8CCC-6CF622F4DC1A@amazon.com
This commit is contained in:
Michael Paquier 2023-03-01 10:47:01 +09:00
parent 6a88a05861
commit 6da67a0c11
1 changed files with 10 additions and 0 deletions

View File

@ -516,6 +516,16 @@
<structname>pg_stat_statements</structname> entry.
</para>
<para>
Queries on which normalization can be applied may be observed with constant
values in <structname>pg_stat_statements</structname>, especially when there
is a high rate of entry deallocations. To reduce the likelihood of this
happening, consider increasing <varname>pg_stat_statements.max</varname>.
The <structname>pg_stat_statements_info</structname> view, discussed below
in <xref linkend="pgstatstatements-pg-stat-statements-info"/>,
provides statistics about entry deallocations.
</para>
<para>
In some cases, queries with visibly different texts might get merged into a
single <structname>pg_stat_statements</structname> entry. Normally this will happen