GaussDB-慢SQL诊断
GaussDB-慢SQL诊断
可获得性
本特性自V300R002C00版本开始引入,V500R001C20增强了该特性。
V500R001C10版本的慢SQL相关视图已废弃,包括:dbe_perf. gs_slow_query_info、dbe_perf.gs_slow_query_history、dbe_perf.global_slow_query_hisotry、dbe_perf.global_slow_query_info。
特性简介
慢SQL诊断提供诊断慢SQL所需要的必要信息,帮助开发者回溯执行时间超过阈值的SQL,诊断SQL性能瓶颈。
客户价值
慢SQL提供给用户对于慢SQL诊断所需的详细信息,用户无需通过复现就能离线诊断特定慢SQL的性能问题。表和函数接口方便用户统计慢SQL指标,对接第三方平台。
特性描述
慢SQL能根据用户提供的执行时间阈值(log_min_duration_statement),记录所有超过阈值的执行完毕的作业信息。
慢SQL提供表和函数两种维度的查询接口,用户从接口中能查询到作业的执行计划、开始、结束执行时间、执行查询的语句、行活动、内核时间、CPU时间、执行时间、解析时间、编译时间、查询重写时间、计划生成时间、网络时间、I/O时间、网络开销、锁开销等。所有信息都是脱敏的。
特性增强
增加对慢SQL指标信息、安全性(脱敏)、执行计划、查询接口的增强。
特性约束
- 目前的SQL跟踪信息,基于正常的执行逻辑。执行失败的SQL,其跟踪信息不具有准确的参考价值,例如:状态为cancelled等。
- 节点重启,可能导致该节点的数据丢失。
- 通过GUC参数设置收集SQL语句的数量,如果超过阈值,新的SQL语句执行信息不会被收集。
- 通过GUC参数设置单条SQL语句收集的锁事件详细信息的最大字节数,如果超过阈值,新的锁事件详细信息不会被收集。
- 当track_stmt_parameter为off时,query字段最大长度受track_activity_query_size控制。
- 通过异步刷新方式刷新用户执行中的SQL信息,所以用户Query执行结束后,存在查询相关视图函数结果短暂时延。
- 部分指标信息(行活动、Cache/IO、时间分布等)依赖于dbe_perf.statement视图收集,如果该视图对应记录数超过预定大小(依赖GUC:instr_unique_sql_count),则本特性可能不收集相关指标。
- statement_history表相关函数以及视图、备机dbe_perf.standby_statement_history中details字段为二进制格式,如果需要解析详细内容,请使用对应函数:pg_catalog.statement_detail_decode(details, 'plaintext', true)。
- 通过GUC参数track_stmt_stat_level打开full SQL功能时会影响性能,并且可能会占用大量的磁盘空间。
- statement_history表查询需要切换至postgres库,其它库中数据为空。
- 备机dbe_perf.standby_statement_history函数查询需要切换至postgres库,其它库中查询会提示不可用。
- statement_history表以及备机dbe_perf.standby_statement_history函数内容受track_stmt_stat_level控制,默认为'OFF,L0',参数第一部分代表full SQL,第二部分是慢SQL;对于慢SQL,只有SQL运行时间超过log_min_duration_statement时才会被记录至statement_history表。
- 当track_stmt_stat_level关闭full SQL时,SQL等锁超时可能会导致表中的query_plan信息为空,可通过detail字段内的wait event辅助定位分析。
- 当track_stmt_flush_mode参数取值为"MEMORY,FILE"时,开启内核支持全量SQL功能,full SQL语句存储到内存中,slow SQL语句存储到磁盘文件中。开启功能后性能劣化不超过5%。由于全量SQL默认关闭,开启后仅占用固定内存大小,故当前版本全量SQL大小共享内存暂不受max_process_memory控制。在升级未提交期间,若版本过低,将无法开启全量SQL功能,并记录提示信息至日志。
- 全量SQl采用共享内存方式存储full/slow SQL,gs_shared_mem_kpi.meta文件存储了共享内存访问信息,可通过System V共享内存的接口shmat访问,当前仅用于对接管控SQL全链路相关功能。
依赖关系
无。

浙公网安备 33010602011771号