背景信息
ODC SQL 窗口提供了用于处理数据的用户界面。在 SQL 窗口中,您可以对 SQL 语句进行系统评估、执行详情和执行的全链路耗时信息。
本文档以表 employee 为例,介绍如何对查询 SQL 语句进行系统评估。
执行计划
在 SQL 窗口中,编辑 SQL 语句以查询插入表
employee
的数据。SELECT `emp_no`, `birthday`, `name`, `time`, `test_col`, `status`, `age`, `state` FROM `employee`;
如上图所示,选中 SQL 语句并单击执行计划图标,可以在执行 SQL 语句前系统预估执行数据(EXPLAINPLAN 操作的结果),展示的执行数据可能与实际执行语句后的数据略有不同。
在 计划详情 页面中,单击 文本视图 切换至格式化展示页面。
执行详情
对于 OceanBase V4.2.4 之前的版本,执行 SQL 语句时,您可以通过结果集页签中 执行详情 查看 SQL 执行的基本信息、耗时统计、I/O 统计、执行的 SQL 语句、计划统计和大纲。
对于 OceanBase V4.2.4 及之后且 OceanBase V4.3.0 之前的版本或者 OceanBase V4.3.3 之后的版本,您在执行查询/插入/更新/删除/检索数据库中的数据时,您可以通过 执行画像 实时查询 SQL 执行的执行剖析,通过执行剖析可以快速查询 SQL 执行详情和识别性能瓶颈。
执行画像入口
入口一:在 SQL 窗口执行 SQL 语句时,执行过程中可以在 日志 页签单击 查看执行画像。
重要如果 SQL 语句的执行耗时低于 1 秒,日志页签中可能不会展示执行画像入口。
入口二:SQL 语句执行完成后,可以在执行结果中单击执行画像图标。
入口三:SQL 语句执行完成后,单击 执行记录 页签中的 TRACE ID 可进入执行画像界面。
执行剖析
执行详情 即执行画像是对 SQL 执行计划的可视化和数据采集,支持实时查看算子执行状态、耗时详情、I/O 和运行时数据,并对全局执行耗时进行汇总和排序。
通过执行画像,您可以:
以图格式查看 OceanBase 的实际执行计划,更方便理解算子执行顺序和连接关系。
通过执行概览、实时 I/O 统计和耗时 Top5 快速进行执行瓶颈识别,ODC 根据 CPU time 进行耗时排序。
实时查询算子的执行状态、时间和吐行行数,通过单击算子节点,您可以在右侧获取到算子属性、耗时详情,以及 I/O 及其它运行时数据。
支持分析单机执行计划和分析分布式执行计划,并行执行算子支持按照 DB 耗时、IO 内存和吐行行数排序,快速定位数据倾斜。
SQL 执行概览
类型 | 参数说明 |
SQL 执行概览 |
|
算子执行概览 |
|
I/O 统计
类型 | 参数说明 |
算子 I/O 统计 |
|
节点属性
节点属性由算子的输出信息和运行时数据(Other statistics)构成。
更多节点输出信息,请参见 OceanBase 官网文档,例如Table Scan 算子的属性。
运行时数据在不同算子上表示不同的意义,是一些重要的监控指标。关于此类指标,请参见 V$SQL_MONITOR_STATNAME 视图。
执行计划
与 SQL 窗口中的 执行计划 不同,执行画像 中的执行计划展示的是实际执行的计划,因此包含 实际行 和 实际代价。ODC 通过 DBMS_XPLAN 工具包获取当前计划。
您也可以单击右上角的 文本视图 切换视图,查询更全面的计划信息,便于进行更进一步的 SQL 调优。
全链路诊断
当 OceanBase 版本高于 4.2.0 时(如需通过 OBProxy 连接,版本应为 OBProxy V4.2.0 及之后),ODC 支持查看 SQL 的全链路诊断可视化信息。更多请参见OceanBase 全链路追踪概述。
ODC 对于 OceanBase 的全链路诊断数据,提供了 Trace 视图 和 列表视图 两种可视化视图。
Trace 视图展示了 SQL 执行的总时间线,支持节点的展开和收起,且支持搜索高亮。将鼠标置于时间线上,可以查看当前节点的执行节点、开始、结束时间,以及详细数据。
单击表格视图可以切换视图,允许对 Span 进行各维度的筛选和排序。
ODC 支持导出 JSON 格式的全链路诊断数据,兼容 OpenTracing 协议,您可以将其导入 Jaeger 中进行进一步分析。
DB 耗时
在 执行记录 页签中,可将鼠标箭头放置在 DB 耗时 信息后的提示图标上,弹出的提示信息中可查看对 SQL 执行的全链路耗时信息,以验证各个阶段的耗时与实际是否相符。