@@ -35,7 +35,7 @@ ____________________________________________________________________________-->
35
35
</para>
36
36
____________________________________________________________________________-->
37
37
<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 的第三方模块, 则会自动完成此操作。
39
39
</para>
40
40
41
41
<!--==========================orignal english content==========================
@@ -50,7 +50,7 @@ ____________________________________________________________________________-->
50
50
</para>
51
51
____________________________________________________________________________-->
52
52
<para>
53
- 当<filename>pg_stat_statements</filename>被载入时 ,它会跟踪该服务器
53
+ 当<filename>pg_stat_statements</filename>激活时 ,它会跟踪该服务器
54
54
的所有数据库的统计信息。该模块提供了一个视图
55
55
<structname>pg_stat_statements</structname>以及函数<function>pg_stat_statements_reset</function>
56
56
和<function>pg_stat_statements</function>用于访问和操纵这些统计信息。这些视图
@@ -76,9 +76,8 @@ ____________________________________________________________________________-->
76
76
____________________________________________________________________________-->
77
77
<para>
78
78
由该模块收集的统计信息可以通过一个名为
79
- <structname>pg_stat_statements</structname>的视图使用。这个视图为每
80
- 一个可区分的数据库 ID、用户 ID 和查询 ID(最多到该模块可以追
81
- 踪的可区分语句的数量)的组合都包含一行。该视图的列如
79
+ <structname>pg_stat_statements</structname>的视图使用。这个视图的每一行都包含
80
+ 一个单独的数据库 ID、用户 ID 和查询 ID 以及它是否是顶级语句(最多到该模块可以追踪的可区分语句的数量)的组合。该视图的列如
82
81
<xref linkend="pgstatstatements-columns"/>中所示。
83
82
</para>
84
83
@@ -149,7 +148,15 @@ ____________________________________________________________________________-->
149
148
<para>
150
149
在其中执行该语句的数据库的 OID
151
150
</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>
153
160
154
161
<!--==========================orignal english content==========================
155
162
<row>
@@ -166,7 +173,7 @@ ____________________________________________________________________________-->
166
173
<structfield>queryid</structfield> <type>bigint</type>
167
174
</para>
168
175
<para>
169
- 内部哈希码,从语句的解析树计算得来
176
+ 用于识别相同规范化查询的哈希码。
170
177
</para></entry>
171
178
</row>
172
179
@@ -732,7 +739,7 @@ ____________________________________________________________________________-->
732
739
<structfield>wal_bytes</structfield> <type>numeric</type>
733
740
</para>
734
741
<para>
735
- 语句生成的 WAL 字节总数
742
+ SQL 语句生成的 WAL 总量(以字节为单位)
736
743
</para></entry>
737
744
</row>
738
745
@@ -772,6 +779,11 @@ ____________________________________________________________________________-->
772
779
<para>
773
780
只要可规划的查询(即<command>SELECT</command>、<command>INSERT</command>、<command>UPDATE</command>以及<command>DELETE</command>)根据一种内部哈希计算具有相同的查询结构,它们就会被组合到一个单一的<structname>pg_stat_statements</structname>项。通常,对于这里的目的,如果两个查询除了查询中的文本常量值之外在语义上等效,它们将会被认为是相同的。不过,功能性命令(即所有其他命令)会严格地以它们的文本查询字符串为基础进行比较。
774
781
</para>
782
+ <note>
783
+ <para>
784
+ 以下有关常量替换和<structfield>queryid</structfield>的详细信息仅适用于<xref linkend="guc-compute-query-id"/>有效的情况。 <structfield>queryid</structfield>如果您使用外部模块来计算,您应该参考该外部模块的文档以获取详细信息。
785
+ </para>
786
+ </note>
775
787
776
788
<!--==========================orignal english content==========================
777
789
<para>
@@ -927,7 +939,53 @@ ____________________________________________________________________________-->
927
939
如果因为使用了缓存计划而跳过计划,则只会更新其执行统计信息。
928
940
</para>
929
941
</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>
930
966
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>
931
989
<sect2>
932
990
<!--==========================orignal english content==========================
933
991
<title>Functions</title>
@@ -970,7 +1028,7 @@ ____________________________________________________________________________-->
970
1028
<function>pg_stat_statements_reset</function>丢弃到目前为止与指定的<structfield>userid</structfield>,
971
1029
<structfield>dbid</structfield>和<structfield>queryid</structfield>相对应的<filename>pg_stat_statements</filename>收集的统计信息。
972
1030
如果有任何参数未被指定,那么将对这些参数使用默认值<literal>0</literal>(无效),并且将重置与其他参数匹配的统计信息。
973
- 如果未指定任何参数,或者所有指定的参数均为<literal>0</literal>(无效),则它将丢弃所有统计信息。
1031
+ 如果未指定任何参数,或者所有指定的参数均为<literal>0</literal>(无效),则它将丢弃所有统计信息。如果<filename>pg_stat_statements</filename>视图的所有统计信息都被丢弃,则<structname>pg_stat_statements_info</structname>视图的统计信息也将被重置。
974
1032
默认情况下,此功能只能由超级用户执行。可以使用<command>GRANT</command>授予其他人访问权限。
975
1033
</para>
976
1034
</listitem>
@@ -1062,7 +1120,7 @@ ____________________________________________________________________________-->
1062
1120
</para>
1063
1121
____________________________________________________________________________-->
1064
1122
<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。这个参数只能在服务器启动时设置。
1066
1124
</para>
1067
1125
</listitem>
1068
1126
</varlistentry>
@@ -1150,7 +1208,7 @@ ____________________________________________________________________________-->
1150
1208
____________________________________________________________________________-->
1151
1209
<para>
1152
1210
<varname>pg_stat_statements.track_planning</varname>控制模块是否跟踪计划操作和持续时间。
1153
- 启用此参数可能会导致明显的性能损失,尤其是在许多并发连接上执行较少种类的查询时 。
1211
+ 启用此参数可能会导致明显的性能损失,尤其是当具有相同查询结构的 SQL 语句由许多竞争更新少数<structname>pg_stat_statements</structname>条目的并发连接执行时 。
1154
1212
默认值为<literal>off</literal>。只有超级用户才能更改此设置。
1155
1213
</para>
1156
1214
</listitem>
@@ -1218,6 +1276,7 @@ ____________________________________________________________________________-->
1218
1276
# postgresql.conf
1219
1277
shared_preload_libraries = 'pg_stat_statements'
1220
1278
1279
+ compute_query_id = on
1221
1280
pg_stat_statements.max = 10000
1222
1281
pg_stat_statements.track = all
1223
1282
</programlisting>
0 commit comments