更新时间:2026-07-28 GMT+08:00
特性概述
功能定义
503.1.SPC1800版本以后,支持存储过程慢SQL相关特性,可以通过DBE_PERF.STATEMENT_HISTORY、DBE_PERF.STATEMENT分析存储过程内执行慢的语句。
用户场景
当出现执行慢的存储过程语句时,如果不确定该语句是被哪个存储过程调用,可以借助慢SQL相关特性查找最外层调用语句、单次执行产生的指标、单条语句累计执行产生的消耗等信息。
规格约束
- 需要设置参数instr_unique_sql_track_type = 'all',DBE_PERF.STATEMENT_HISTORY、DBE_PERF.STATEMENT记录存储过程内语句。
- 查询DBE_PERF.STATEMENT_HISTORY必须具有SYSADMIN权限或者MONITOR ADMIN权限。只可在系统库中查询到结果,用户库中无法查询。
- DBE_PERF.STATEMENT_HISTORY系统表受track_stmt_stat_level控制,默认为"OFF,L0",第一部分控制Full SQL,第二部分控制Slow SQL。该表不同列限制不同级别才能记录,部分列不同级别记录信息不同。
- 查询视图DBE_PERF.STATEMENT必须具有SYSADMIN权限或者MONITOR ADMIN权限。CN上可以看到此CN接收到的归一化SQL的全量统计信息(包含DN相关信息);DN上仅可看到此节点执行的归一化SQL的统计信息。
- 访问WDR快照数据需要SYSADMIN或MONADMIN权限。GUC参数enable_wdr_snapshot值为on,且快照数量大于等于2时才可以生成WDR报告。
- 支持记录的存储过程语句包括:DML语句、动态语句、PERFORM语句、OPEN CURSOR语句和FETCH CURSOR语句,其中OPEN和FETCH语句的QUERY会被转换为游标实际执行的查询语句。
技术架构
GAUSSDB 中慢SQL指的是执行时间超过阈值log_min_duration_statement的语句。
存储过程慢SQL的支持分为DBE_PERF.STATEMENT_HISTORY和DBE_PERF.STATEMENT两部分。
- 对DBE_PERF.STATEMENT_HISTORY系统表,语句每次执行会产生记录,根据track_stmt_stat_level参数值以及当前语句是否是慢SQL,决定该记录是否会刷新到DBE_PERF.STATEMENT_HISTORY。
- DBE_PERF.STATEMENT记录归一化信息,底层实现是哈希表,unique_query_id、parent_unique_sql_id、userid、dbid相同的语句会归一到同一条记录。
父主题: 存储过程慢SQL