
# 技术原理
#### 核心机制
pg_stat_activity系统视图支持显示当前正在执行的语句，在语句解析期间会调用接口，将语句信息写到query字段。为了记录存储过程内正在执行的语句，当前的实现机制是在存储过程内语句解析期间，按照"query string: 最顶层的执行语句, current level: 当前语句的直接调用语句, lineno: 当前语句在执行的存储过程中的行号, execute stmt: 当前正在执行的语句" 的格式拼接后，覆盖pg_stat_activity指定行的query值。
#### 性能指标
开启track_procedure_sql，记录存储过程正在执行的SQL语句，性能劣化在5%左右。
#### 接口介绍
| pg_stat_activity记录存储过程内正在执行的语句的相关接口                                                                                                                                                                                                                                                                                                                        ||
|:---|---|
| 系统表   | pg_stat_activity                                                                                                                                                                                                                                                                                                                                    |
| GUC参数 | - track_activities控制pg_stat_activity是否记录信息。  - track_procedure_sql控制支持记录存储过程内正在执行的语句功能是否启用，默认开启。   |
   
