pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
这些参数控制服务器范围内的累积统计系统。启用后,收集的数据可以通过 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_cost_delay_timing (boolean) #启用基于代价的清理延迟计时(参见第 19.10.2 节)。默认情况下该参数关闭,因为它需要反复查询操作系统当前时间,在某些平台上可能带来显著开销。你可以使用 pg_test_timing 工具来衡量系统上的计时开销。基于代价的清理延迟计时信息会显示在 pg_stat_progress_vacuum、pg_stat_progress_analyze 中,也会显示在带有 VERBOSE 选项的 VACUUM 和 ANALYZE 输出中,并且当设置了 log_autovacuum_min_duration 时,自动清理进程还会为自动清理和自动分析记录这些信息。只有超级用户和具有适当 SET 权限的用户才能更改此设置。
track_io_timing (boolean) #启用数据库 I/O 等待的计时。此参数默认关闭,因为计时需要反复向操作系统查询当前时间,在某些平台上可能会产生显著开销。可以使用 pg_test_timing 工具测量本系统上的计时开销。I/O 计时信息会显示在 pg_stat_database 中、pg_stat_io 中(当 object 不是 wal 时)、pg_stat_get_backend_io() 函数的输出中(当 object 不是 wal 时)、使用 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_io 中 object 为 wal 的行,以及 pg_stat_get_backend_io() 函数输出中 object 为 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) #启用内置的查询标识符计算功能。查询标识符可以显示在 pg_stat_activity 视图或 EXPLAIN 的输出中,也可以通过 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 权限的用户才能更改这些设置。
译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。英文原文本身的问题请通过上游文档表单反馈给 PostgreSQL 文档维护者。