查询和索引统计收集器
查询和索引统计收集器负责收集数据库系统运行中的统计数据,如在一个表和索引上进行了多少次插入与更新操作、磁盘块的数量和元组的数量、每个表上最近一次执行清理和分析操作的时间等。可以通过查询系统视图pg_stats和pg_statistic查看统计数据。下面的参数设置服务器范围内的统计收集特性。
track_activities
参数说明:控制收集每个会话中当前正在执行命令的统计数据。
参数类型:SUSET
取值范围:布尔型
- on表示开启收集功能。
- off表示关闭收集功能。
默认值:on
track_counts
参数说明:控制收集数据库活动的统计数据。
参数类型:SUSET
取值范围:布尔型
- on表示开启收集功能。
- off表示关闭收集功能。
在autovacuum自动清理进程中选择清理的数据库时,需要数据库的统计数据,故默认值设为on。
默认值:on
track_io_timing
参数说明:控制收集数据库I/O调用时序的统计数据。I/O时序统计数据可以在pg_stat_database中查询。
参数类型:SUSET
取值范围:布尔型
- on表示开启收集功能,开启时,收集器会重复地去查询当前时间的操作系统,这可能会引起某些平台的重大开销,故默认值设置为off。
- off表示关闭收集功能。
默认值:off
track_functions
参数说明:控制收集函数的调用次数和调用耗时的统计数据。
参数类型:SUSET
当SQL语言函数设置为调用查询的“内联”函数时,不管是否设置此选项,这些SQL语言函数无法被追踪到。
取值范围:枚举类型
- pl表示只追踪过程语言函数。
- all表示追踪SQL和C语言函数。
- none表示关闭函数追踪功能。
默认值:none
track_activity_query_size
参数说明:设置用于跟踪每一个活跃会话当前正在执行命令的字节数,用于pg_stat_activity.query和
pgxc_stat_activity.query字段。如果该值没有指定单位,则默认为字节。
参数类型:POSTMASTER
取值范围:整型,100~102400
默认值:1024
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
如果新设置值小于原设置值,将会清空对应CN节点已收集的Unique SQL统计信息。需特别注意该清理操作将由资源管理后台线程完成,若GUC参数use_workload_manager为off时清理操作可能失败,可直接使用函数reset_instr_unique_sql进行清理。
instr_unique_sql_timeout
参数说明:控制Unique SQL的存在时间。StatCollector后台线程每小时对所有的Unique SQL做一次检查,如果发现某个Unique SQL超过instr_unique_sql_timeout小时未被执行,则将其删除。(该参数在8.1.2及以上版本支持。)
参数类型:SIGHUP
取值范围:整型,0~INT_MAX,单位为小时。
- 值为0时,表示不删除过期的Unique SQL。
- 值大于0时,发现超过instr_unique_sql_timeout小时未执行Unique SQL则删除。
默认值:24
track_sql_count
参数说明:控制对每个会话中当前正在执行的SELECT、INSERT、UPDATE、DELETE、MERGE INTO语句是否进行计数统计,对SELECT、INSERT、UPDATE、DELETE语句的响应时间进行统计,以及对DDL、DML、DCL语句进行计数的统计。
参数类型:SUSET
取值范围:布尔型
- on表示开启统计功能。
- off表示关闭统计功能。
默认值:on
- 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行。
enable_track_wait_event
参数说明:控制是否对各类等待事件的发生次数、失败次数、持续时间、最大、最小和平均等待时间等信息进行统计。
参数类型:SIGHUP
取值范围:布尔型
- on表示开启统计功能。
- off表示关闭统计功能。
默认值:off
- enable_track_wait_event参数受track_activities约束,如果track_activities关闭,即使开启enable_track_wait_event也不启用相关功能。
- track_activities或enable_track_wait_event关闭时,如果查询get_instr_wait_event函数、gs_wait_events视图或pgxc_wait_events视图将会提示GUC参数关闭,查询结果为0行。
- 在集群运行过程中关闭track_activities或enable_track_wait_event,GaussDB(DWS)不再对等待事件相关信息进行统计,但已统计记录的数据不受影响。
enable_wdr_snapshot
参数说明:控制是否启用性能视图快照功能。开启后,GaussDB(DWS)会定期对部分系统性能视图创建快照并持久化保存,并接受手动创建快照请求。
参数类型:SIGHUP
取值范围:布尔型
- on表示开启快照功能。
- off表示关闭快照功能。
默认值:off
- 如果enable_wdr_snapshot参数关闭,执行create_wdr_snapshot函数手动创建视图会提示GUC参数未打开。
- 如果在快照的过程中修改enable_wdr_snapshot参数,正在创建的快照不受影响,下次定期或手动创建快照时生效。
wdr_snapshot_interval
参数说明:设置自动创建性能视图快照的时间间隔。
参数类型:SIGHUP
取值范围:整型,10~180,单位为分钟。
默认值:60
- 该参数取值应与集群负载相对应,不宜取值过小,建议大于创建一次快照所需时间。
- 如果wdr_snapshot_interval小于创建一次快照所需时间,也就是说到了快照的时间,发现上一个快照还没执行完,则跳过本次快照。
wdr_snapshot_retention_days
参数说明:设置性能快照数据保留的最大天数。
参数类型:SIGHUP
取值范围:整型,1~15,单位为天。
默认值:8
- 开启enable_wdr_snapshot的情况下,保存wdr_snapshot_retention_days天数的快照数据会被自动清除。
- 该参数取值应与可用磁盘空间相对应,取值越大,需要的磁盘空间越大。
- 对该参数的修改不会立即生效,等到下一次自动创建快照时才会清除过期快照数据。
enable_parallel_analyze
参数说明:控制内外表analyze采样时是否使用并行的采样方式。该参数仅9.1.0及以上集群版本支持。
参数类型:USERSET
取值范围:布尔型
- true表示内外表analyze采样时使用并行的采样方式。
- false表示内外表analyze采样时不使用并行的采样方式。
默认值:true
- 开启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
该参数取值应与集群负载相对应,当集群负载较小时可以根据集群配置适当提高该参数值,进一步增加analyze执行效率。
analyze_sample_multiplier
参数说明:用于设置外表analyze采样的stripe采样率的扩大倍数。该参数仅9.1.0及以上集群版本支持。
参数类型:SUSET
取值范围:整型,0~100,0表示stripe采样率为100%。
默认值:3