这些参数控制服务器范围内的累积统计信息系统。启用后,可以通过 pg_stat
和 pg_statio
系统视图族访问收集的数据。有关详细信息,请参阅第 27 章。
track_activities
(boolean
) #启用收集每个会话当前正在执行的命令的信息,以及其标识符和该命令开始执行的时间。默认情况下,此参数处于启用状态。请注意,即使启用,此信息也仅对超级用户、具有 pg_read_all_stats
角色权限的角色以及被报告会话的用户(包括属于他们具有权限的角色的会话)可见,因此不应构成安全风险。只有超级用户和具有适当 SET
权限的用户才能更改此设置。
track_activity_query_size
(integer
) #指定为每个活动会话存储当前正在执行的命令文本而保留的内存量,用于 pg_stat_activity
.query
字段。如果此值未指定单位,则默认为字节。默认值为 1024 字节。此参数只能在服务器启动时设置。
track_counts
(boolean
) #启用收集数据库活动统计信息。默认情况下,此参数处于启用状态,因为自动清理守护程序需要收集的信息。只有超级用户和具有适当 SET
权限的用户才能更改此设置。
track_io_timing
(boolean
) #启用数据库 I/O 调用的计时。默认情况下,此参数处于关闭状态,因为它会反复查询操作系统以获取当前时间,这可能会在某些平台上导致显著的开销。您可以使用 pg_test_timing 工具来衡量系统上计时的开销。I/O 计时信息显示在 pg_stat_database
、pg_stat_io
中,在使用 BUFFERS
选项时 EXPLAIN 的输出中,在使用 VERBOSE
选项时 VACUUM 的输出中,在设置了 log_autovacuum_min_duration 时由自动清理程序执行的自动清理和自动分析中使用,以及由 pg_stat_statements 使用。只有超级用户和具有适当 SET
权限的用户才能更改此设置。
track_wal_io_timing
(boolean
) #启用 WAL I/O 调用的计时。默认情况下,此参数处于关闭状态,因为它会反复查询操作系统以获取当前时间,这可能会在某些平台上导致显著的开销。您可以使用 pg_test_timing 工具来衡量系统上计时的开销。I/O 计时信息显示在 pg_stat_wal
中。只有超级用户和具有适当 SET
权限的用户才能更改此设置。
track_functions
(enum
) #启用跟踪函数调用计数和所用时间。指定 pl
仅跟踪过程语言函数,all
也跟踪 SQL 和 C 语言函数。默认值为 none
,这将禁用函数统计信息跟踪。只有超级用户和具有适当 SET
权限的用户才能更改此设置。
足够简单可以 “内联” 到调用查询中的 SQL 语言函数将不会被跟踪,无论此设置如何。
stats_fetch_consistency
(enum
) #确定在事务中多次访问累积统计信息时的行为。当设置为 none
时,每次访问都会从共享内存中重新获取计数器。当设置为 cache
时,对对象的第一次统计信息访问会将这些统计信息缓存到事务结束,除非调用 pg_stat_clear_snapshot()
。当设置为 snapshot
时,第一次统计信息访问会缓存当前数据库中可访问的所有统计信息,直到事务结束,除非调用 pg_stat_clear_snapshot()
。在事务中更改此参数会丢弃统计信息快照。默认值为 cache
。
none
最适合监视系统。如果只访问一次值,它是最有效的。cache
确保重复访问产生相同的值,这对于涉及例如自连接的查询很重要。snapshot
在交互式检查统计信息时很有用,但开销较高,尤其是在存在许多数据库对象时。
compute_query_id
(enum
) #启用核心查询标识符的计算。可以使用 EXPLAIN
在 pg_stat_activity
视图中显示查询标识符,或者如果通过 log_line_prefix 参数配置,则在日志中发出。 pg_stat_statements 扩展也需要计算查询标识符。请注意,如果核心查询标识符计算方法不可接受,则可以替代使用外部模块。在这种情况下,必须始终禁用核心计算。有效值包括 off
(始终禁用)、on
(始终启用)、auto
,这允许诸如 pg_stat_statements 之类的模块自动启用它,以及 regress
,它具有与 auto
相同的效果,只是为了方便自动回归测试,查询标识符不会显示在 EXPLAIN
输出中。默认值为 auto
。
为了确保只计算并显示一个查询标识符,计算查询标识符的扩展程序如果已经计算过查询标识符,则应抛出错误。
log_statement_stats
(boolean
) log_parser_stats
(boolean
) log_planner_stats
(boolean
) log_executor_stats
(boolean
) #对于每个查询,将相应模块的性能统计信息输出到服务器日志。这是一种粗略的性能分析工具,类似于 Unix 的 getrusage()
操作系统工具。log_statement_stats
报告总语句统计信息,而其他选项报告每个模块的统计信息。log_statement_stats
不能与任何按模块选项同时启用。所有这些选项默认情况下都是禁用的。只有超级用户和具有相应 SET
权限的用户才能更改这些设置。
如果您在文档中发现任何不正确、与您特定功能的使用体验不符或需要进一步澄清的地方,请使用此表单报告文档问题。