运行中的统计信息(RUN-TIME STATISTICS)类别参数

本文档介绍了系统配置参数中 运行中的统计信息类别的相关参数。

注意!
为确保系统稳定与安全,请务必谨慎手动修改相关参数


ANALYZE 对数据库内容的统计

default_statistics_target


为没有通过 ALTER TABLE SET STATISTICS 设置特定列目标的表列设置默认统计样本目标(存储在公共值列表中的值数量)。

  • 较大的值可能会提高 Postgres 查询优化器(规划器)估计的质量。
数据类型 默认值 取值范围 设置分类
int 100 1 ~ 10000 master;session;reload


查询与索引统计收集器

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

track_activities


启用对每个会话的当前执行命令的信息收集,还有命令开始执行的时间。

  • 注意:此参数即使被启用,这些信息也不是对所有用户可见,只有超级用户和拥有报告信息的会话的用户可见,因此它不会表现为一个安全风险。
数据类型 默认值 设置分类
boolean on master;session;reload;superuser

track_activity_query_size


设置存储在系统目录 pg_stat_activitycurrent_query 列中的查询文本的最大长度限制。

  • 这个参数只能在服务器启动时被设置。
数据类型 默认值 取值范围 设置分类
int 1024 100 ~ 102400 segment;system;restart


track_counts


控制收集数据库活动的统计数据。

数据类型 默认值 设置分类
boolean true master;session;reload;superuser

track_functions


启用对计数和用时使用的函数的统计。

  • 指定 pl 只跟踪过程语言函数;指定 all 还会跟踪 SQL 和 C 语言函数。
  • 注意:无论此参数为何值,简单到足以被“内联”到调用查询中的 SQL 语言函数均不会被跟踪。
  • 默认值为 none,即禁用函数统计跟踪。
数据类型 默认值 取值范围 设置分类
enum none none / pl / all master;session;reload

track_io_timing


启用对系统 I/O 调用的计时。

  • 此参数值默认为 off,因为它再打开时将重复地向操作系统查询当前时间,这会使某些平台有显著负荷。
  • 你可以使用 pg_test_timing 工具来度量你的系统中计时的开销。I/O 计时信息被显示在 pg_stat_database 中、当 BUFFERS 选项被使用时的 EXPLAIN 输出中以及 pg_stat_statements 中。
数据类型 默认值 设置分类
boolean off master;session;reload;superuser

stats_queue_level


收集有关数据库活动的资源队列统计信息。

  • 注意:仅当资源管理设置为资源队列时,stats_queue_level 服务器配置参数才会生效。
数据类型 默认值 设置分类
boolean off master;session;reload

stats_temp_directory


设置存储临时统计数据的目录。

  • 此参数是一个相对于数据目录的路径或一个绝对路径。
  • 在一个基于 RAM 的文件系统上指明这个参数,将降低物理 I/O 需求,并且提高性能。
数据类型 默认值 设置分类
string pa_stat_tmp segments;system;reload;superuser


统计监控

log_executor_stats


对于每个查询,将查询执行程序的性能统计信息写入服务器日志。

  • 这是一种原始的分析工具。无法与 log_statement_stats 一起启用。
数据类型 默认值 设置分类
boolean off segment;system;restart

log_parser_stats


对于每个查询,将查询解析器的性能统计信息写入服务器日志。

  • 这是一种原始的分析工具。无法与 log_statement_stats 一起启用。
数据类型 默认值 设置分类
boolean off master;session;reload;superuser

log_planner_stats


对于每个查询,将 Postgres 查询优化器(规划器)的性能统计信息写入服务器日志。

  • 这是一种原始的分析工具。无法与 log_statement_stats 一起启用。
数据类型 默认值 设置分类
boolean off master;session;reload;superuser

log_statement_stats


对于每个查询,将查询解析器、优化器和执行引擎的总体性能统计信息写入服务器日志。

  • 此参数不能和其它任何针对每个模块统计的选项一起启用。
数据类型 默认值 设置分类
boolean off master;session;reload;superuser


自动统计收集参数

gp_autostats_mode


指定使用 ANALYZE 触发自动统计信息收集的模式。

  • on_no_stats 选项可以触发对任何没有统计信息的表上的 CREATE TABLE AS SELECTINSERT,或 COPY 操作的统计信息收集。
  • 当受影响的行数超过由 gp_autostats_on_change_threshold 定义的阀值时,on_change 选项才会触发统计信息收集。 可以使用 on_change 触发自动统计信息收集的操作有:CREATE TABLE AS SELECTUPDATEDELETEINSERTCOPY
  • 注意:对于分区表来说,如果从分区表的顶级父表插入数据,则不会触发自动统计信息收集。如果数据直接插入到分区表的叶表(数据的存储位置)中,则触发自动统计信息收集。 统计数据仅在叶表上收集。
数据类型 默认值 取值范围 设置分类
enum none none / on_no_stats / on_change master;session;reload

gp_autostats_mode_in_functions


指定使用过程语言函数中的 ANALYZE 语句触发自动统计信息收集的模式。

  • none 选项禁用统计信息收集;on_no_stats 选项在任何没有现有统计信息表上的函数中执行的 CREATE TABLE AS SELECTINSERT,或 COPY 操作触发统计信息收集。
  • 只有当受影响的行数超过由 gp_autostats_on_change_threshold 定义的阈值时,on_change 选项才会触发统计信息收集。可以使用 on_change 触发自动信息统计收集功能的操作有:CREATE TABLE AS SELECTUPDATEDELETEINSERTCOPY
数据类型 默认值 取值范围 设置分类
enum none none / on_change / on_no_stats master;session;reload

gp_autostats_on_change_threshold


gp_autostats_mode 设定为 on_change 时,指明自动统计信息收集的阀值。

  • 当触发表操作影响超过此阀值的行数时,将添加 ANALYZE 并收集表的统计信息。
数据类型 默认值 取值范围 设置分类
int 2147483647 0 ~ INT_MAX master;session;reload

log_autostats


记录有关与 gp_autostats_modegp_autostats_on_change_threshold 相关的自动 ANALYZE 操作的信息。

数据类型 默认值 设置分类
boolean off master;session;reload;superuser