这些参数控制服务器范围的统计数据收集特性。当统计收集被启用时,被产生的数据可以通过pg_stat
和pg_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_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
文件中或在服务器命令行上设置。
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
不能和 其它任何针对每个模块统计的选项一起启用。所有这些选项都是默认禁用的。只有超级用户可以更改这个设置。