查询分析¶
查询分析是数据库模块的独立分析入口,支持跨实例的查询聚合展示。当您管理多个数据库实例时,无需逐个进入实例详情页,即可从全局视角定位系统级慢查询瓶颈。
适用数据库类型
查询分析当前支持 MySQL、PostgreSQL、Oracle、SQL Server。切换数据库类型后,列表将按该类型重新加载对应实例的查询数据。
功能定位¶
与查看器以单实例为维度的查询分析不同,查询分析的核心能力包括:
- 跨实例聚合:同一条业务 SQL 在多个实例上执行时,自动聚合为全局累计数据,避免逐实例排查。
- 同类查询合并:系统会自动将参数值不同的同类 SQL(如
WHERE id = 1与WHERE id = 2)识别并合并为同一查询模板进行统计,避免同一语句因参数差异而分散展示。 - 全局性能排序:支持按总耗时、执行次数、平均耗时等多维度排序,快速发现全局性能瓶颈。
页面布局¶
查询分析页面由顶部操作栏、左侧快捷筛选、查询列表及详情侧板组成。
顶部操作栏¶
| 元素 | 说明 |
|---|---|
| 数据库类型选择器 | 下拉切换 MySQL / PostgreSQL / Oracle / SQL Server,切换后列表按该类型重新加载 |
| SQL 模板搜索 | 支持按关键词搜索 SQL 模板,输入限制 512 字节 |
| 查询总数 | 显示当前筛选条件下的查询模板数量 |
| 导出 | 导出当前列表页为 CSV 文件、TXT 或导出到仪表板 |
| 显示项 | 支持自定义显示/隐藏列表列 |
左侧快捷筛选¶
| 筛选维度 | 说明 |
|---|---|
| 实例名 | 多选,展示该数据库类型下的所有实例 |
| 数据库地址 | 多选,按数据库连接地址筛选 |
| 总耗时 | 范围分段筛选 |
| 执行次数 | 范围分段筛选 |
时间范围联动
查询分析的时间范围与全局时间控件联动。列表数据与详情侧板中的趋势图均基于选定的时间窗口进行实时聚合。
查询列表¶
列表展示在当前时间范围、当前数据库类型下,经聚合后的所有查询模板。每条记录代表一类 SQL(参数已替换为 ?),并汇总了该类 SQL 在所有选中实例上的执行数据。
列表字段¶
| 字段 | 说明 |
|---|---|
| SQL 模板 | 参数替换为 ? 后的 SQL 文本,列表中最多显示 2 行。点击可展开右侧详情侧板 |
| 执行次数 | 时间范围内,该类查询在所有实例上的累计执行次数 |
| 平均耗时 | 该类查询的平均单次执行时间 |
| 总耗时 | 时间范围内,该类查询在所有实例上的累计执行时间 |
| 性能开销占比 | 该类查询累计总耗时占所有查询累计总耗时的百分比,以进度条可视化。占比越高,说明该类查询对系统整体性能的影响越大 |
| 平均扫描行数 | 该类查询在所有实例上的平均扫描/返回行数,用于评估查询的数据扫描范围 |
| 趋势 | 当前时间范围内执行次数的迷你折线图(Sparkline),与列表页时间范围联动 |
SQL 模板与原始 SQL
列表中展示的 SQL 模板已将具体参数值替换为 ?,方便您关注语句结构本身。在详情侧板中,可查看该模板下最近出现的一条原始 SQL 样本,并支持一键复制完整文本。
查询详情侧板¶
点击列表任意行,右侧滑出查询详情侧板,展示该类查询的全局性能数据。侧板包含以下 Tab:
完整 SQL¶
侧板顶部固定展示该类查询的完整 SQL 模板(参数已替换为 ?),支持一键复制。
性能趋势¶
与列表页时间范围联动,以时间序列图表展示该类查询的三个核心指标:
| 图表 | 说明 |
|---|---|
| 执行次数 | 次/分钟,反映该类查询的并发压力趋势 |
| 平均耗时 | 毫秒(ms),反映该类查询的单次执行效率趋势 |
| 总耗时 | 毫秒(ms),反映该类查询在整体系统中的时间消耗趋势 |
每个指标独立展示时间序列图,支持选择时间间隔过滤或导出图表。
实例¶
展示该类查询在各实例上的执行分布,帮助判断瓶颈集中在哪个实例。
| 字段 | 说明 |
|---|---|
| 数据库地址 | 实例的连接地址 |
| 实例名 | 数据库实例标识 |
| 执行次数 | 该实例上该类查询的执行次数,带进度条可视化 |
| 平均耗时 | 该实例上该类查询的平均执行时间 |
| 总耗时 | 该实例上该类查询的累计执行时间,带进度条可视化 |
| 平均发送行数 | 该实例上该类查询平均返回的行数 |
| 错误次数 | 该实例上该类查询执行失败的次数 |
- 实例名可点击,将以新页面打开该实例的单实例查询详情页(复用现有查看器详情)。
- 支持在搜索框中按实例名或数据库地址过滤。
用户¶
展示该类查询在各数据库账号上的执行分布。
| 字段 | 说明 |
|---|---|
| 用户 | 数据库账号名 |
| 样本数 | 该用户执行此类查询的次数 |
| 平均耗时 | 该用户执行此类查询的平均时间 |
- 支持在搜索框中按用户名过滤。
查询样本¶
展示该类查询的实际采样记录,字段依据数据库类型有所差异。
MySQL 示例字段:
| 字段 | 说明 |
|---|---|
| 时间 | 采样发生的时间戳 |
| 数据库 | 目标数据库(Schema) |
| 执行时长 | 该样本的实际执行耗时 |
| 用户 | 执行该样本的数据库账号 |
| 等待组 | 该样本的等待事件分组 |
不同数据库的采样字段差异
查询样本的展示字段与数据库类型相关。例如 SQL Server 会展示“会话 ID、等待类型、CPU 耗时”等字段,Oracle 与 PostgreSQL 亦会展示各自的原生性能字段。具体字段以页面实际展示为准。
指标计算说明¶
查询分析中的聚合指标按以下逻辑计算:
| 指标 | 计算说明 |
|---|---|
| 执行次数 | 所有实例上该类查询执行次数的累加 |
| 平均耗时 | 所有实例累计总耗时 ÷ 所有实例累计执行次数 |
| 总耗时 | 所有实例上该类查询耗时的累加 |
| 性能开销占比 | 该类查询累计总耗时 ÷ 所有查询累计总耗时 × 100% |
| 平均扫描行数 | 所有实例上该类查询平均扫描行数的平均值 |
数据时效性说明
查询分析的数据按用户选择的时间范围实时聚合。若某实例在选定时间范围内无数据上报,则该实例不会出现在聚合结果中。