首批通过分布式安全可靠测评,为关键业务系统打造
查看 SQL 详情
更新时间:2023-10-27 17:11:02
本节为您介绍如何通过 OCP 查看 SQL 详情,包括该 SQL 的运行情况、执行计划、绑定的索引以及是否限流。
前提条件
仅 OceanBase V3.0 以上版本支持查看 SQL 执行画像。
对于 MySQL 模式的租户,需要 OCP 用户的密码箱里具有该租户的密码。
对于 Oracle 模式的租户,需要 OCP 用户的密码箱里具有该集群 SYS 租户的密码。
说明
当前登录 OCP 的租户有租户的 更新 权限,才可 绑定索引、绑定执行计划 和 设置限流。
进入 SQL 详情页
在左导航栏单击 租户 ,并在 租户列表 中单击具体的租户进入租户 总览 页面。
在左侧导航栏单击 SQL 诊断 ,进入 SQL 诊断 页面。
在 可疑 SQL 、 TopSQL 、 SlowSQL 或 ParalleSQL 页签中找到目标 SQL。
可通过设置查询条件,辅助定位目标 SQL。

单击目标 SQL 的 SQL 文本,进入目标 SQL 的详情页。

在 SQL 详情 页中,您可查看该 SQL 的详细信息,包括:
在 SQL 文本 处查看 SQL 的完整语句,OCP 会尽量对 SQL 文本进行脱敏再展示,但解析失败的场景下,会返回原 SQL。
在 优化建议 处查看对于该 SQL 的优化建议,详见 查看优化建议。
在 SQL 执行画像 处查看 SQL 执行详情,详见 查看 SQL 执行画像。
在 历史趋势 页签,查看该 SQL 运行的历史趋势,详见 查看 SQL 运行的历史趋势。
在 执行计划 页签,查看该 SQL 的执行计划,或为其绑定执行计划,详见 查看 SQL 的执行计划。
在 索引 页签,查看该 SQL 的绑定的索引,详见 查看和绑定索引。
在 SQL 限流 页签,查看该 SQL 的限流情况,或为其设置限流,详见 设置 SQL 限流。
在 执行计划 、 索引 、 SQL 限流 页签的图示 ① 处,均可查看该 SQL 的绑定记录。
在绑定记录中您可查看到已绑定计划的状态,可通过 取消绑定 按钮将 SQL 与该计划解绑,也可通过 绑定计划 按钮将二者再次绑定。
查看优化建议
当 SQL 诊断识别到执行计划发生变化、性能发生变化或 SQL 的 RT 超过一定阈值时,您可在 优化建议 中查看该 SQL 的诊断问题及建议解决方案,如索引推荐、历史计划推荐、租户 CPU 扩容推荐等。并可进行查看 Plan Hash、绑定执行计划和查看诊断详情操作。
索引推荐时,会根据以下算法进行:
等值查询列在前,以任意顺序组合。
如有范围查询,将选择性最好的范围查询列放在等值查询列后。
如果没有范围查询,当满足消除排序条件时,将排序列放在等值查询后。
将谓词中其他列放在索引后面,此时已是半宽索引。
将Select 中其他列放在索引后面,构造覆盖索引。
当覆盖索引不超过8列时,会推荐覆盖索引,否则会推荐半宽索引。
说明
暂不支持表联接场景。
配置参数如下:
ocp.perf.sql.index-advisor-cpu-time-threshold:索引推荐时,SQL 的平均 CPU 时间阈值,当 SQL 的平均 CPU 时间大于该值时,会进行索引推荐。ocp.perf.sql.index-advisor-elapsed-time-threshold:索引推荐时,SQL 的平均响应时间阈值,当 SQL 的平均响应时间大于该值时,会进行索引推荐。
历史计划推荐会分析 SQL 最近一周的执行计划,当某个计划的平均 CPU 时间低于同类型最新计划的平均 CPU 时间的 80% 时,会进行推荐。会优先推荐本地计划;若本地计划不存在,则会推荐分布式计划。
在租户 CPU 使用率大于 60% 时,系统会给出租户 CPU 扩容建议。
说明
仅可疑 SQL 支持查看诊断详情。
查看 Plan Hash
单击 查看 Plan Hash 按钮,可在弹出的面板中查看 Plan Hash 执行计划详情,包括基本信息、执行步骤和 Server 执行计划。

绑定执行计划
单击 绑定执行计划 按钮,在对话框中单击 绑定 ,绑定成功后刷新页面,单击 查看近 30 天绑定记录 ,可查看到该执行计划已被绑定。

查看诊断详情
单击 查看诊断详情 按钮,可查看该可疑 SQL 的诊断详情。
查看 SQL 执行画像
您可在 SQL 执行画像 处查看采集时间范围内算子级别的 SQL 执行详情,包括 TraceID、并行度、请求时间、响应耗时及操作。
说明
仅 ParalleSQL 支持查看 SQL 执行画像。
查看 Trace 详情
单击 TraceID,进入 Trace 详情 页面查看执行画像,包括Trace 基本信息、Schema 表、Schema 索引、OBServer 节点详情和算子执行详情。
单击页面右上角 下载执行画像报告 按钮,可将该 Trace 信息以 HTML 格式导出至本地。
单击 Trace ID 右侧的三角图标,可进行 Trace 切换。
在 Schema 表 页签,单击建表语句,可查看语句详情。
在 Schema 索引 页签,可对索引进行绑定和解绑操作。

下载执行画像报告
在 SQL 执行画像 列表处,单击 操作 栏的 下载执行画像报告 按钮,可将 Trace 信息以 HTML 格式导出至本地。

查看 SQL 运行的历史趋势
在 SQL 详情 页中单击 历史趋势 页签。
可查看到 SQL 运行趋势图 和 SQL 计划生成时间图。当修改图中 ① 处的统计时间时, SQL 运行 和 SQL 计划生成时间 这两张统计图会同步按所选时间更新。
SQL 运行趋势
运行趋势图默认展示 平均响应时间 、 CPU时间 、 执行时间 指标,您可通过图中 ② 处选择展示更多指标。

SQL 计划生成时间
表示有新的计划生成,且纵坐标表示生成计划的耗时。

查看 SQL 的执行计划
在 SQL 详情 页中单击 执行计划 页签。在该页签中您可:
通过 ① 处设置查询范围及查询时间窗口。
单击 ② 处查看过去 30 天该 SQL 的执行计划绑定记录。
单击 ③ 处查看该执行计划的详细执行信息,包括该执行计划的基本信息、执行步骤、在不同 OBServer 节点上的执行情况。
单击 绑定 按钮,将该执行计划与当前 SQL 绑定。

查看和绑定索引
在 SQL 详情 页中单击 索引 页签,在该页签中您可:

在列表中查看该 SQL 的索引绑定情况。
您可根据索引状态和类型对索引进行筛选;也可以单击 绑定 ,将该 SQL 与索引绑定。您可通过黑屏或连接 OceanBase 开发者中心(OceanBase Developer Center,ODC)创建索引。
单击 查看近 30 天绑定记录 查看该 SQL 最近 30 天的索引绑定记录。
在绑定记录中您可查看到已绑定索引的状态,可通过 取消绑定 按钮将 SQL 与该索引解绑,也可通过 绑定计划 按钮将二者再次绑定。

设置 SQL 限流
在 SQL 详情 页中单击 SQL 限流 页签,在该页签中您可:
查看当前 SQL 是否限流。
如图所示,该 SQL 未开启限流。

为当前 SQL 设置限流。

如图所示,打开限流开关配配置限流策略:
最大并发数:取值范围为 [0,+∞),0 表示关闭限流。
限流关键字:单击 设置 后,在弹出的 设置限流关键字 窗口中 ? 处,即如图中 ① 处所示的地方设置限流关键字。
* 若限流关键字设置失败,可在图示 ② 处查看原因。说明
若不设置关键字,则对整个 SQL 限流。
- 单击 更新 ,随后单击 确定 。