SQL执行监控埋点核心是精准捕获慢查询、高资源消耗、异常失败、权限越界、高频调用五类关键行为,通过内核级采集执行指纹、耗时、资源开销、会话上下文及结果字段,采用基础层常开+增强层阈值触发的分层策略,并支持多维聚合与下钻分析。

SQL执行监控埋点的核心目标
不是记录所有SQL,而是精准捕获影响性能、稳定性与安全的关键行为。重点覆盖慢查询、高资源消耗、异常失败、权限越界和高频调用五类场景。
内核级指标必须采集的字段
绕过应用层日志,直接从数据库内核(如MySQL的Performance Schema、PostgreSQL的pg_stat_statements + pg_stat_activity)提取原始数据,确保不可篡改、低开销、高时效。关键字段包括:
- 执行指纹:归一化后的SQL模板(如SELECT * FROM users WHERE id = ?),去参数、去空格、标准化大小写
-
执行耗时:精确到微秒的
timer_wait或total_time,区分排队时间、解析时间、执行时间、锁等待时间 - 资源开销:逻辑读页数、临时表创建次数、磁盘I/O字节数、排序行数、内存峰值使用量
- 会话上下文:client_host、user@host、schema、autocommit状态、事务ID、是否在事务中
- 执行结果:返回行数、影响行数、错误码(如1205死锁、1213锁等待超时)、警告数量
分层埋点策略:轻量采集 + 按需增强
避免全量开启高成本指标。采用两级机制:
- 基础层(默认常开):SQL指纹、执行时间、返回行数、用户、库名、错误码——开销低于1% CPU,所有语句都采
- 增强层(阈值触发):当单次执行时间 > 1s 或扫描行数 > 10万 或出现错误码时,自动补全完整执行计划(EXPLAIN FORMAT=JSON)、绑定变量值(脱敏后)、等待事件栈、索引使用详情
指标聚合与下钻设计要点
原始埋点数据需支持多维实时聚合,同时保留下钻能力:
- 按指纹+用户+库名三元组聚合,计算QPS、平均延迟、P95/P99、错误率、慢查率
- 每个聚合桶保留最近3–5条原始样本,用于快速定位典型实例(如“这个指纹在admin用户下最近三次都超2s”)
- 支持按时间窗口(1m/5m/1h)滚动计算,并关联DB主机CPU、连接数等系统指标做根因提示










