更新时间:2024-11-12 GMT+08:00
分享

查询和索引统计收集器

查询和索引统计收集器负责收集数据库系统运行中的统计数据,如在一个表和索引上进行了多少次插入与更新操作、磁盘块的数量和元组的数量、每个表上最近一次执行清理和分析操作的时间等。可以通过查询系统视图pg_stats和pg_statistic查看统计数据。下面的参数设置服务器范围内的统计收集特性。

track_activities

参数说明:控制是否收集每个会话中当前正在执行命令的统计数据。对于存储过程,打开该参数后,可以通过pg_stat_activity视图看到存储过程内正在执行的perform语句、调用存储过程语句、存储过程内的SQL语句、OPEN CURSOR语句。该参数可在PDB级别设置。

参数类型:布尔型

参数单位:

取值范围:

  • on:表示开启收集功能。
  • off:表示关闭收集功能。

默认值:on。在PDB场景内,若未设置该参数,则继承来自全局的设置。

设置方式:该参数属于SUSET类型参数,请参考表1中对应设置方法进行设置。

设置建议:推荐使用默认值。

设置不当的风险与影响:该参数设置为off会影响存储引擎空间回收能力,导致空间膨胀。

track_counts

参数说明:控制是否收集数据库活动的统计数据。该参数可在PDB级别设置。在AutoVacuum自动清理线程中选择清理的数据库时,需要数据库的统计数据,故默认值设置为on。

参数类型:布尔型

参数单位:

取值范围:

  • on:表示开启收集功能。
  • off:表示关闭收集功能。

默认值:on。在PDB场景内,若未设置该参数,则继承来自全局的设置。

设置方式:该参数属于SUSET类型参数,请参考表1中对应设置方法进行设置。

设置建议:推荐使用默认值。

设置不当的风险与影响:该参数设置为off会影响存储引擎空间回收能力,导致空间膨胀。

track_procedure_sql

参数说明:该参数控制pg_stat_activity系统表中的query列是否同时打印该存储过程中正在执行的SQL语句。该参数可在PDB级别设置。

参数类型布尔型

参数单位

取值范围:

  • on:表示调用存储过程时,pg_stat_activity的query列会同时打印存储过程正在执行的语句。
  • off:表示调用存储过程时,pg_stat_activity的query列只打印存储过程调用语句。

默认值:on。在PDB场景内,若未设置该参数,则继承来自全局的设置。

设置方式该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。

设置建议推荐使用默认值。

设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。

track_io_timing

参数说明:控制是否收集数据库I/O调用时序的统计数据。I/O时序统计数据可以在pg_stat_database中查询。开启该参数时,收集器会在当前时间重复查询操作系统的信息,这可能会引起某些平台的重大开销,故默认值设置为off。该参数可在PDB级别设置。

参数类型:布尔型

参数单位:

取值范围:

  • on:表示开启收集功能。
  • off:表示关闭收集功能。

默认值:off。在PDB场景内,若未设置该参数,则继承来自全局的设置。

设置方式:该参数属于SUSET类型参数,请参考表1中对应设置方法进行设置。

设置建议推荐使用默认值。

设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。

track_functions

参数说明:控制是否收集函数的调用次数和调用耗时的统计数据。该参数可在PDB级别设置。

当SQL语言函数设置为调用查询的“内联”函数时,不管是否开启该参数,这些SQL语言函数都无法被追踪到。

参数类型:枚举类型

参数单位:

取值范围:

  • pl:表示只追踪过程语言函数。
  • all:表示追踪SQL语言函数。
  • none:表示关闭函数追踪功能。

默认值:none。在PDB场景内,若未设置该参数,则继承来自全局的设置。

设置方式:该参数属于SUSET类型参数,请参考表1中对应设置方法进行设置。

设置建议推荐使用默认值。

设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。

track_activity_query_size

参数说明:用于跟踪每一个活动会话中当前正在执行命令的字节数。如果实际命令字节数大于该值,会进行截断。

参数类型:整型

参数单位:字节(byte)

取值范围:100 ~ 102400

默认值:1024

设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。

设置建议:根据实际业务场景进行设置。

设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。

update_process_title

参数说明:控制是否收集每次服务器因接收到一个新的SQL语句而产生的线程名称更新的统计数据。

线程名称可以通过ps命令进行查看。

参数类型:布尔型

参数单位:

取值范围:

  • on:表示开启收集功能。
  • off:表示关闭收集功能。

默认值:off

设置方式:该参数属于INTERNAL类型参数,为固定参数,用户无法修改此参数,只能查看。

设置建议该参数不允许用户进行设置,只能查看。

设置不当的风险与影响:

stats_temp_directory

参数说明:设置存储临时统计数据的目录,仅sysadmin用户可以访问。

将该参数设置为一个基于RAM的文件系统目录会减少实际的I/O开销并提升其性能。

参数类型:字符串

参数单位:

取值范围:合法的目录。

默认值:"pg_stat_tmp"

设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。

设置建议推荐使用默认值。

设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。

track_thread_wait_status_interval

参数说明:用来定期收集thread状态信息的时间间隔。该参数可在PDB级别设置。

参数类型:整型

参数单位:分钟(min)

取值范围:0 ~ 1440

默认值:30。在PDB场景内,若未设置该参数,则继承来自全局的设置。

设置方式:该参数属于SUSET类型参数,请参考表1中对应设置方法进行设置。例如,设置为100,不带单位,表示100min;设置为1d,带单位,表示1d。取值如果要带单位,必须为min、h、d。

设置建议:推荐使用默认值。

设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。

enable_save_datachanged_timestamp

参数说明:确定是否收集insert/update/delete、exchange/truncate/drop partition操作对表数据改动的时间。该参数可在PDB级别设置。

参数类型:布尔型

参数单位:

取值范围:

  • on:表示允许收集相关操作对表数据改动的时间。
  • off:表示禁止收集相关操作对表数据改动的时间。

默认值:on。在PDB场景内,若未设置该参数,则继承来自全局的设置。

设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。

设置建议推荐使用默认值。

设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。

enable_plan_trace

参数说明:控制数据库是否开启plan trace特性,该参数不能使用gs_guc命令进行全局设置,只能在连接的session中使用set命令进行设置。

参数类型:布尔型

参数单位:

取值范围:

  • on:表示开启plan trace特性。
  • off:表示关闭plan trace特性。

默认值:off

设置方式:该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。

设置建议推荐使用默认值。

设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。

plan_collect_thresh

参数说明:控制收集每个会话中当前正在执行计划的统计数据。该参数可在PDB级别设置。

参数类型:整型

参数单位:

取值范围:-1 ~ 2147483647

  • -1:表示不收集运行态计划。
  • 0:表示计划执行之前收集一次运行态计划。
  • >0:表示当计划中所有算子增量返回tuple数量之和大于等于该值时,收集一次运行态计划。

默认值:0。在PDB场景内,若未设置该参数,则继承来自全局的设置。

设置方式:该参数属于SUSET类型参数,请参考表1中对应设置方法进行设置。

设置建议推荐使用默认值。

设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。

track_sql_count

参数说明:控制是否对每个会话中当前正在执行的SELECT、INSERT、UPDATE、DELETE、MERGE INTO语句进行计数。该参数可在PDB级别设置。

在x86架构集中式部署下,硬件配置规格为32核CPU/256GB内存,使用Benchmark SQL 5.0工具测试性能,开关此参数性能影响约0.8%。

参数类型:布尔型

参数单位:

取值范围:

  • on:表示开启计数功能。
  • off:表示关闭计数功能。

默认值:on。在PDB场景内,若未设置该参数,则继承来自全局的设置。

设置方式:该参数属于SUSET类型参数,请参考表1中对应设置方法进行设置。

设置建议推荐使用默认值。

设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。

  • track_sql_count参数受track_activities约束:
    • track_activities开启而track_sql_count关闭时,如果查询了gs_sql_count视图,日志中将会有WARNING提示track_sql_count是关闭的;
    • track_activities和track_sql_count同时关闭时,那么此时日志中将会有两条WARNING,分别提示track_activities是关闭的和track_sql_count是关闭的;
    • track_activities关闭而track_sql_count开启时,此时日志中将仅有WARNING提示track_activities是关闭的。
  • 当参数关闭时,查询视图的结果为0行。

相关文档