
# 查询和索引统计收集器
查询和索引统计收集器负责收集数据库系统运行中的统计数据，如在一个表和索引上进行了多少次插入与更新操作、磁盘块的数量和元组的数量、每个表上最近一次执行清理和分析操作的时间等。可以通过查询系统视图pg_stats和pg_statistic查看统计数据。以下参数用于设置服务器范围内的统计收集特性。
#### track_activities
**参数说明：**控制收集每个会话中当前正在执行命令的统计数据。
**参数类型：**SUSET
**取值范围：**布尔型
- on表示开启收集功能。
- off表示关闭收集功能。
**默认值：**on
#### track_counts
**参数说明：**控制收集数据库活动的统计数据。
**参数类型：**SUSET
**取值范围：**布尔型
- on表示开启收集功能。
- off表示关闭收集功能。
![](https://support.huaweicloud.com/devg-dws/public_sys-resources/note_3.0-zh-cn.png)
在autovacuum自动清理进程中选择清理的数据库时，需要数据库的统计数据，故默认值设为on。
**默认值：**on
#### track_io_timing
**参数说明：**控制收集数据库I/O调用时序的统计数据。I/O时序统计数据可以在pg_stat_database中查询。
**参数类型：**SUSET
**取值范围：**布尔型
- on表示开启收集功能，开启时，收集器会重复地去查询当前时间的操作系统，这可能会引起某些平台的重大开销，故默认值设置为off。
- off表示关闭收集功能。
**默认值：**off
#### track_functions
**参数说明：**控制收集函数的调用次数和调用耗时的统计数据。
**参数类型：**SUSET
![](https://support.huaweicloud.com/devg-dws/public_sys-resources/notice_3.0-zh-cn.png)
当SQL语言函数设置为调用查询的"内联"函数时，不管是否设置此选项，这些SQL语言函数无法被追踪到。
**取值范围：**枚举类型
- pl表示只追踪过程语言函数。
- all表示追踪SQL和C语言函数。
- none表示关闭函数追踪功能。
**默认值：**none
#### update_process_title
**参数说明：**控制收集每次服务器接收到一个新的SQL语句时产生的进程名称更新的统计数据。
进程名称可以通过ps命令进行查看，在Windows下通过任务管理器查看。
**参数类型：**SUSET
**取值范围：**布尔型
- on表示开启收集功能。
- off表示关闭收集功能。
**默认值：**off
#### track_thread_wait_status_interval
**参数说明：**用来定期收集thread状态信息的时间间隔。
**参数类型：**SUSET
**取值范围：**整型，0\~1440，单位为min。
**默认值：**30min
#### enable_save_datachanged_timestamp
**参数说明：**控制是否收集insert/update/delete, exchange/truncate/drop partition操作对表数据改动的时间。
**参数类型：**USERSET
**取值范围：**布尔型
- on表示允许收集相关操作对表数据改动的时间。
- off表示禁止收集相关操作对表数据改动的时间。
**默认值：**on
#### enable_save_dataaccess_timestamp
**参数说明：**控制是否记录表的最后一次访问时间。该参数仅8.2.1.210及以上集群版本支持。
**参数类型：**USERSET
**取值范围：**布尔型
- on表示允许记录表的最后一次访问时间。
- off表示禁止记录表的最后一次访问时间。
**默认值：**off
#### instr_unique_sql_count
**参数说明：**控制是否收集整个集群的Unique SQL以及收集数量限制。
**参数类型：**SIGHUP
**取值范围：**整型，0～INT_MAX
- 值为0时，表示不收集Unique SQL统计信息。
- 值大于0时，在CN节点上，将会控制收集的Unique SQL数量不超过该设置值。当收集数量达到限制时，不再收集新的Unique SQL，此时可通过reload调大设置值，继续收集新的Unique SQL。
**默认值：**0
![](https://support.huaweicloud.com/devg-dws/public_sys-resources/caution_3.0-zh-cn.png)
如果新设置值小于原设置值，将会清空对应CN节点已收集的Unique SQL统计信息。
#### track_sql_count
**参数说明：**控制对每个会话中当前正在执行的SELECT、INSERT、UPDATE、DELETE、MERGE INTO语句是否进行计数统计，对SELECT、INSERT、UPDATE、DELETE语句的响应时间进行统计，以及对DDL、DML、DCL语句进行计数的统计。
**参数类型：**SUSET
**取值范围：**布尔型
- on表示开启统计功能。
- off表示关闭统计功能。
**默认值：**on
![](https://support.huaweicloud.com/devg-dws/public_sys-resources/note_3.0-zh-cn.png)
- track_sql_count参数受track_activities约束：
  - track_activities开启而track_sql_count关闭时，如果查询了gs_sql_count、pgxc_sql_count、gs_workload_sql_count、pgxc_workload_sql_count、global_workload_sql_count、gs_workload_sql_elapse_time、pgxc_workload_sql_elapse_time、或global_workload_sql_elapse_time视图，将会有LOG提示track_sql_count是关闭的。
  
  - track_activities和track_sql_count同时关闭，那么此时将会有两条LOG，分别提示track_activities是关闭的和track_sql_count是关闭的。
  
  - track_activities关闭而track_sql_count开启，此时将仅有LOG提示track_activities是关闭。
   

- 当参数关闭时，查询视图的结果为0行。
 
#### track_partition_activities
**参数说明：**控制是否收集数据库中当前正在执行的分区操作相关的信息。该参数仅9.1.0.100及以上集群版本支持。
**参数类型：**SUSET
**取值范围：**布尔型
- on表示开启收集功能。
- off表示关闭收集功能。
**默认值：**on
#### enable_parallel_analyze
**参数说明**：控制内外表analyze采样时是否使用并行的采样方式。该参数仅9.1.0及以上集群版本支持。
**参数类型：**USERSET
**取值范围**：布尔型
- true表示内外表analyze采样时使用并行的采样方式。
- false表示内外表analyze采样时不使用并行的采样方式。
**默认值**：true
![](https://support.huaweicloud.com/devg-dws/public_sys-resources/caution_3.0-zh-cn.png)
- 开启enable_parallel_analyze的情况下，对外表进行analyze时，尽量避免对目标外表列增加NOT NULL约束条件，防止外表数据源变更时约束失效导致analyze失败；同时目前并行采样不支持物化视图；当发生由于此类原因导致的analyze失败时，可以设置该参数为false，成功执行analyze。
- 目前并行采样仅支持普通列存内表analyze，当内表使用hstore/hstore_opt或声明为复制表时此优化不会生效。
- 目前并行采样仅支持parquet/orc格式存储的外表，当外表为其他格式时此优化不会生效。
 
#### parallel_analyze_workers
**参数说明**：用于设置并行的analyze采样时并发的线程数量。该参数仅9.1.0及以上集群版本支持。
**参数类型：**USERSET
**取值范围**：整型，0\~64
**默认值**：10
![](https://support.huaweicloud.com/devg-dws/public_sys-resources/note_3.0-zh-cn.png)
该参数取值应与集群负载相对应，当集群负载较小时可以根据集群配置适当提高该参数值，进一步增加analyze执行效率。
#### analyze_sample_multiplier
**参数说明**：用于设置外表analyze采样的stripe采样率的扩大倍数。该参数仅9.1.0及以上集群版本支持。
**参数类型：**USERSET
**取值范围**：整型，0\~100，0表示stripe采样率为100%。
**默认值**：3
#### tuple_change_sync_threshold
**参数说明：**设置在DML操作后将修改计数同步给其他CN节点的阈值。该参数仅8.2.1.210及以上集群版本支持。
**参数类型：**USERSET
**取值范围：**整型，0\~INT_MAX
**默认值：**10000
