Redrock Postgres 搜索 英文
版本: 9.3 / 9.4 / 9.5 / 9.6 / 10 / 11 / 12 / 13 / 14 / 15 / 16

20.9. 运行时统计数据

20.9.1. 查询和索引统计收集器
20.9.2. 统计监控

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

这些参数控制服务器范围的统计数据收集特性。当统计收集被启用时,被产生的数据可以通过pg_statpg_statio系统视图族访问。详见第 28 章

track_activities (boolean)

启用对每个会话的当前执行命令的信息收集,还有它的标识符和命令开始执行的时间。 这个参数默认为打开。注意即使被启用,这些信息也不是对所有用户可见,只有超级用户和拥有报告信息的会话的用户可见,因此它不会表现为一个安全风险。 只有超级用户可以更改这个设置。

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输出中,通过autovacuum对auto-vacuums 和 auto-analyzes,当 log_autovacuum_min_durationpg_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的模块自动启用它。 默认为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不能和 其它任何针对每个模块统计的选项一起启用。所有这些选项都是默认禁用的。只有超级用户可以更改这个设置。