Skip to content

Commit f980d99

Browse files
committed
doc: update pgstatstatements.sgml
1 parent 330ee23 commit f980d99

File tree

1 file changed

+70
-11
lines changed

1 file changed

+70
-11
lines changed

postgresql/doc/src/sgml/pgstatstatements.sgml

Lines changed: 70 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ ____________________________________________________________________________-->
3535
</para>
3636
____________________________________________________________________________-->
3737
<para>
38-
该模块必须通过在<filename>postgresql.conf</filename>的<xref linkend="guc-shared-preload-libraries"/>中增加<literal>pg_stat_statements</literal>来载入,因为它需要额外的共享内存。这意味着增加或移除该模块需要一次服务器重启。
38+
该模块必须通过在<filename>postgresql.conf</filename>的<xref linkend="guc-shared-preload-libraries"/>中增加<literal>pg_stat_statements</literal>来载入,因为它需要额外的共享内存。这意味着增加或移除该模块需要一次服务器重启。此外,必须启用查询ID计算器才能使模块处于active状态。如果<xref linkend="guc-compute-query-id"/>参数设置为<literal>auto</literal> 或者 <literal>on</literal>,或者如果加载了计算查询 id 的第三方模块, 则会自动完成此操作。
3939
</para>
4040

4141
<!--==========================orignal english content==========================
@@ -50,7 +50,7 @@ ____________________________________________________________________________-->
5050
</para>
5151
____________________________________________________________________________-->
5252
<para>
53-
当<filename>pg_stat_statements</filename>被载入时,它会跟踪该服务器
53+
当<filename>pg_stat_statements</filename>激活时,它会跟踪该服务器
5454
的所有数据库的统计信息。该模块提供了一个视图
5555
<structname>pg_stat_statements</structname>以及函数<function>pg_stat_statements_reset</function>
5656
和<function>pg_stat_statements</function>用于访问和操纵这些统计信息。这些视图
@@ -76,9 +76,8 @@ ____________________________________________________________________________-->
7676
____________________________________________________________________________-->
7777
<para>
7878
由该模块收集的统计信息可以通过一个名为
79-
<structname>pg_stat_statements</structname>的视图使用。这个视图为每
80-
一个可区分的数据库 ID、用户 ID 和查询 ID(最多到该模块可以追
81-
踪的可区分语句的数量)的组合都包含一行。该视图的列如
79+
<structname>pg_stat_statements</structname>的视图使用。这个视图的每一行都包含
80+
一个单独的数据库 ID、用户 ID 和查询 ID 以及它是否是顶级语句(最多到该模块可以追踪的可区分语句的数量)的组合。该视图的列如
8281
<xref linkend="pgstatstatements-columns"/>中所示。
8382
</para>
8483

@@ -149,7 +148,15 @@ ____________________________________________________________________________-->
149148
<para>
150149
在其中执行该语句的数据库的 OID
151150
</para></entry>
152-
</row>
151+
</row>
152+
<row>
153+
<entry role="catalog_table_entry"><para role="column_definition">
154+
<structfield>toplevel</structfield> <type>bool</type>
155+
</para>
156+
<para>
157+
如果查询作为顶级 SQL 语句执行则为True(<varname>pg_stat_statements.track</varname>如果设置为<literal>top</literal>则始终为真)
158+
</para></entry>
159+
</row>
153160

154161
<!--==========================orignal english content==========================
155162
<row>
@@ -166,7 +173,7 @@ ____________________________________________________________________________-->
166173
<structfield>queryid</structfield> <type>bigint</type>
167174
</para>
168175
<para>
169-
内部哈希码,从语句的解析树计算得来
176+
用于识别相同规范化查询的哈希码。
170177
</para></entry>
171178
</row>
172179

@@ -732,7 +739,7 @@ ____________________________________________________________________________-->
732739
<structfield>wal_bytes</structfield> <type>numeric</type>
733740
</para>
734741
<para>
735-
语句生成的 WAL 字节总数
742+
SQL 语句生成的 WAL 总量(以字节为单位)
736743
</para></entry>
737744
</row>
738745

@@ -772,6 +779,11 @@ ____________________________________________________________________________-->
772779
<para>
773780
只要可规划的查询(即<command>SELECT</command>、<command>INSERT</command>、<command>UPDATE</command>以及<command>DELETE</command>)根据一种内部哈希计算具有相同的查询结构,它们就会被组合到一个单一的<structname>pg_stat_statements</structname>项。通常,对于这里的目的,如果两个查询除了查询中的文本常量值之外在语义上等效,它们将会被认为是相同的。不过,功能性命令(即所有其他命令)会严格地以它们的文本查询字符串为基础进行比较。
774781
</para>
782+
<note>
783+
<para>
784+
以下有关常量替换和<structfield>queryid</structfield>的详细信息仅适用于<xref linkend="guc-compute-query-id"/>有效的情况。 <structfield>queryid</structfield>如果您使用外部模块来计算,您应该参考该外部模块的文档以获取详细信息。
785+
</para>
786+
</note>
775787

776788
<!--==========================orignal english content==========================
777789
<para>
@@ -927,7 +939,53 @@ ____________________________________________________________________________-->
927939
如果因为使用了缓存计划而跳过计划,则只会更新其执行统计信息。
928940
</para>
929941
</sect2>
942+
<sect2>
943+
<title>The <structname>pg_stat_statements_info</structname> View</title>
944+
945+
<indexterm>
946+
<primary>pg_stat_statements_info</primary>
947+
</indexterm>
948+
949+
<para>
950+
通过视图<structname>pg_stat_statements_info</structname>来生成和记录<filename>pg_stat_statements</filename> 本身模块的统计信息。这个视图只有一行数据,视图列显示在 <xref linkend="pgstatstatementsinfo-columns"/>中。
951+
</para>
952+
953+
<table id="pgstatstatementsinfo-columns">
954+
<title><structname>pg_stat_statements_info</structname> Columns</title>
955+
<tgroup cols="1">
956+
<thead>
957+
<row>
958+
<entry role="catalog_table_entry"><para role="column_definition">
959+
Column Type
960+
</para>
961+
<para>
962+
Description
963+
</para></entry>
964+
</row>
965+
</thead>
930966

967+
<tbody>
968+
<row>
969+
<entry role="catalog_table_entry"><para role="column_definition">
970+
<structfield>dealloc</structfield> <type>bigint</type>
971+
</para>
972+
<para>
973+
由于观察到比<varname>pg_stat_statements.max</varname>更多的不同语句,关于最少执行语句的<structname>pg_stat_statements</structname>条目被删除的总次数。
974+
</para></entry>
975+
</row>
976+
<row>
977+
<entry role="catalog_table_entry"><para role="column_definition">
978+
<structfield>stats_reset</structfield> <type>timestamp with time zone</type>
979+
</para>
980+
<para>
981+
<structname>pg_stat_statements</structname>上次重置视图的所有统计信息的时间。
982+
</para></entry>
983+
</row>
984+
985+
</tbody>
986+
</tgroup>
987+
</table>
988+
</sect2>
931989
<sect2>
932990
<!--==========================orignal english content==========================
933991
<title>Functions</title>
@@ -970,7 +1028,7 @@ ____________________________________________________________________________-->
9701028
<function>pg_stat_statements_reset</function>丢弃到目前为止与指定的<structfield>userid</structfield>,
9711029
<structfield>dbid</structfield>和<structfield>queryid</structfield>相对应的<filename>pg_stat_statements</filename>收集的统计信息。
9721030
如果有任何参数未被指定,那么将对这些参数使用默认值<literal>0</literal>(无效),并且将重置与其他参数匹配的统计信息。
973-
如果未指定任何参数,或者所有指定的参数均为<literal>0</literal>(无效),则它将丢弃所有统计信息。
1031+
如果未指定任何参数,或者所有指定的参数均为<literal>0</literal>(无效),则它将丢弃所有统计信息。如果<filename>pg_stat_statements</filename>视图的所有统计信息都被丢弃,则<structname>pg_stat_statements_info</structname>视图的统计信息也将被重置。
9741032
默认情况下,此功能只能由超级用户执行。可以使用<command>GRANT</command>授予其他人访问权限。
9751033
</para>
9761034
</listitem>
@@ -1062,7 +1120,7 @@ ____________________________________________________________________________-->
10621120
</para>
10631121
____________________________________________________________________________-->
10641122
<para>
1065-
<varname>pg_stat_statements.max</varname>是由该模块跟踪的语句的最大数目(即<structname>pg_stat_statements</structname>视图中行的最大数量)。如果观测到的可区分的语句超过这个数量,最少被执行的语句的信息将会被丢弃。默认值为 5000。这个参数只能在服务器启动时设置。
1123+
<varname>pg_stat_statements.max</varname>是由该模块跟踪的语句的最大数目(即<structname>pg_stat_statements</structname>视图中行的最大数量)。如果观测到的可区分的语句超过这个数量,最少被执行的语句的信息将会被丢弃。可以在<structname>pg_stat_statements_info</structname>视图中看到此类信息被丢弃的次数。默认值为 5000。这个参数只能在服务器启动时设置。
10661124
</para>
10671125
</listitem>
10681126
</varlistentry>
@@ -1150,7 +1208,7 @@ ____________________________________________________________________________-->
11501208
____________________________________________________________________________-->
11511209
<para>
11521210
<varname>pg_stat_statements.track_planning</varname>控制模块是否跟踪计划操作和持续时间。
1153-
启用此参数可能会导致明显的性能损失,尤其是在许多并发连接上执行较少种类的查询时
1211+
启用此参数可能会导致明显的性能损失,尤其是当具有相同查询结构的 SQL 语句由许多竞争更新少数<structname>pg_stat_statements</structname>条目的并发连接执行时
11541212
默认值为<literal>off</literal>。只有超级用户才能更改此设置。
11551213
</para>
11561214
</listitem>
@@ -1218,6 +1276,7 @@ ____________________________________________________________________________-->
12181276
# postgresql.conf
12191277
shared_preload_libraries = 'pg_stat_statements'
12201278

1279+
compute_query_id = on
12211280
pg_stat_statements.max = 10000
12221281
pg_stat_statements.track = all
12231282
</programlisting>

0 commit comments

Comments
 (0)