↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

支持中的版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发中的版本: 19 / 20devel
已结束支持的版本: 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1

20.9. 运行时统计数据 #

20.9.1. 查询和索引统计信息收集器 #

这些参数控制服务器范围内的统计信息收集功能。启用统计信息收集后,产生的数据可以通过 pg_stat 和 pg_statio 系列系统视图进行访问。更多信息请参阅第 28 章。

track_activities (boolean) #

启用对每个会话当前执行命令的信息收集,包括其标识符和命令开始执行的时间。此参数默认为开启状态。请注意,即使启用了此参数,只有超级用户、具有 pg_read_all_stats 角色权限的角色和拥有被报告会话的用户(包括属于他们具有权限的角色的会话)才能看到此信息,因此不应构成安全风险。只有超级用户能更改这个设置。

track_activity_query_size (integer) #

为每个活动会话指定存储当前执行命令的文本所预留的内存量,它们被用于 pg_stat_activity.query 字段。如果指定值时没有单位,则以字节为单位。默认值是 1024 字节。这个参数只能在服务器启动时被设置。

track_counts (boolean) #

启用对数据库活动的统计信息收集。此参数默认为开启,因为自动清理守护进程需要这些收集到的信息。只有超级用户能更改这个设置。

track_io_timing (boolean) #

启用数据库 I/O 调用的计时。此参数默认关闭,因为计时需要反复向操作系统查询当前时间,在某些平台上可能会产生显著开销。可以使用 pg_test_timing 工具测量本系统上的计时开销。I/O 计时信息会显示在 pg_stat_database 中、使用 BUFFERS 选项的 EXPLAIN 输出中,自动清理进程也会在执行自动清理和自动分析时输出这些信息(需设置 log_autovacuum_min_duration),pg_stat_statements 同样提供这些信息。只有超级用户可以更改此设置。

track_wal_io_timing (boolean) #

启用 WAL I/O 调用的计时。此参数默认关闭,因为它会反复向操作系统查询当前时间,可能在某些平台上产生显著开销。可以使用 pg_test_timing 工具测量系统上的计时开销。I/O 计时信息显示在 pg_stat_wal 中。只有超级用户才能更改此设置。

track_functions (enum) #

启用函数调用次数和耗时的跟踪。指定 pl 以仅跟踪过程语言函数,all 以同时跟踪 SQL 和 C 语言函数。默认值为 none,即禁用函数统计跟踪。只有超级用户能更改这个设置。

注意

简单到足以被“内联”到调用查询中的 SQL 语言函数不会被跟踪,而不管这个设置。

stats_temp_directory (string) #

设置存放临时统计信息数据的目录。它既可以是相对于数据目录的路径,也可以是绝对路径。默认值是 pg_stat_tmp。将其指向基于 RAM 的文件系统可以减少物理 I/O 需求,并可能提升性能。这个参数只能在 postgresql.conf 文件中或服务器命令行上设置。

20.9.2. 统计监控 #

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 不能与任何单独模块选项一起启用。所有这些选项默认情况下都是禁用的。只有超级用户才能更改这些设置。

报告文档问题

阅读 上游文档. 通过 PostgreSQL 文档反馈表单.