首批通过分布式安全可靠测评,为关键业务系统打造
可疑 SQL 诊断
更新时间:2026-04-14 16:45:43
可疑 SQL 是指根据诊断类型结合SQL的语句、执行历史、表结构进行诊断,当 SQL 语句符合诊断特征时,请根据处理建议,进行操作。
操作步骤
在左导航栏单击 租户 ,并在 租户列表 中单击具体的租户进入租户 总览 页面。
在左侧导航栏单击 SQL 诊断 ,进入 SQL 诊断 页面。
若集群参数 enable_sql_audit 和租户参数 ob_enable_sql_audit 中任何一个未配置成打开,则 SQL 诊断 页面将缺失 SQL 诊断数据。可通过提示中的按钮修改参数值。

单击 可疑 SQL 页签。
对可疑 SQL 进行筛选。
配置筛选条件。
时间范围:可在 时间范围 下拉框中选择 近 5 分钟、近 10 分钟、近 20 分钟、近 30 分钟、近 1 小时、近 3小时来快速选择时间范围;也可在下拉框中选择自定义时间,并配置开始时间和结束时间。默认显示近 30 分钟内的信息。
内部 SQL:若勾选,则查询结果中会包含由 OceanBase 内部发起的 SQL。
关键词:查询结果中会显示 SQL 文本中包含该关键词的 SQL。匹配方式与 SQL 的 LIKE 相同,且默认自动在输入的字符串前后加了 % 符号。
高级条件: 高级条件 支持同时添加多个过滤条件。单击 添加 ,在 添加高级条件 面板中,可对指标、运算符和指标值进行配置,查询时将获取指标满足条件的 SQL 展示在查询结果列表中。

单击 查询 ,下方列表中将展示所有符合查询条件的 SQL。
支持复制SQL文本,并根据数据库对SQL文本进行筛选。支持根据执行次数、平均响应时间、平均 CPU 时间和计划生成时间对 SQL 文本进行排序,并查看诊断结果。

单击 导出可疑 SQL 按钮,将导出列表中展示的所有可疑 SQL。
查看可疑 SQL 信息。
单击 SQL 文本下内容,您可进入具体 SQL 页面。在 SQL 详情 页中,您可查看该 SQL 的详细信息,包括:
在 SQL 文本 处查看 SQL 的完整语句。
在 优化建议 处查看对于该 SQL 的优化建议,详见 查看优化建议。
查看诊断详情:您可查看特定时间内的诊断结果。
诊断类型及处理方法等信息如下:
诊断类型 对应参数 索引分析情况 SQL 风险等级 说明及处理建议 执行计划变动且性能下降 ocp.perf.sql-diag.performance-degradation-after-plan-changed-config无 高 该 SQL 的执行计划有变化,且变化后性能下降。 需 DBA 确认,可使用 outline 进行执行计划固化,以判断是否为异常 SQL。 全表扫描且无可用索引 ocp.perf.sql-diag.table-scan-index-not-exists-config分析索引 高 该 SQL 执行涉及的部分表因无可用索引而进行了全表扫描。 建议创建合适的索引。 全表扫描但有索引未执行 ocp.perf.sql-diag.table-scan-index-not-exists-config分析索引 高 该 SQL 执行涉及的表都有索引,但有些表未走索引而直接进行了全表扫描。 需确认数据分布与业务场景。 Hint 未生效 ocp.perf.sql-diag.ineffective-hint-config分析索引 高 该 SQL 语句的 Hint 里指定了索引,但执行时没走指定的索引。 需确认 SQL 的 Hint 与实际执行计划是否一致。 性能比以前下降 ocp.perf.sql-diag.performance-degradation-config无 中 该 SQL 在诊断时间内,平均 CPU 占用时间比历史均值高。 需确认数据分布变化和租户整体队列等待情况等信息。 走索引但性能较低 ocp.perf.sql-diag.awful-performance-index-used-config分析索引 中 该SQL 执行通过索引访问相关表,但仍性能较低。 需确认数据分布与业务场景。 执行次数突刺 ocp.perf.sql-diag.execution-spike-config无 中 该 SQL 执行次数在某一时间段内突然飙高。可在 SQL 详情 的 历史趋势 中查看执行次数。 需确认业务量,可能导致整体性能下降。 热点行锁 ocp.perf.sql-diag.row-lock-contention-high-config无 中 需确认业务场景, select for update类型的语句执行频率超过设定值,且 CPU 时间大于设定值。CPU 整体占比超过百分比 ocp.perf.sql-diag.cpu-time-proportion-high-config无 低 诊断时段内,CPU 时间整体占比(该 SQL 执行占用 CPU 时间 / 该租户内所有 SQL 执行占用 CPU 时间 * 100%)过高。 请确认业务场景、数据分布变化、请求量突涨、执行计划变化等情况。 OCP 诊断时默认对 SQL 的响应时间和执行频率等属性进行了一定的限制,您可参考 SQL 性能模块 中的参数说明,在 OCP 的 系统参数 中搜索并修改参数默认值,来自定义诊断对象及判定标准。
在 历史趋势 页签,查看该 SQL 运行的历史趋势,详见 查看 SQL 运行的历史趋势。
在 执行计划 页签,查看该 SQL 的执行计划,或为其绑定执行计划,详见 查看 SQL 的执行计划。
在 索引 页签,查看该 SQL 绑定的索引,详见 查看和绑定索引。
在 SQL 限流 页签,查看该 SQL 的限流情况,或为其设置限流,详见 设置 SQL 限流。
在 执行计划 、 索引 、 SQL 限流 页签的图示 ① 处,均可查看该 SQL 的绑定记录。
在绑定记录中您可查看到已绑定计划的状态,可通过 取消绑定 按钮将 SQL 与该计划解绑,也可通过 绑定 按钮将二者再次绑定。

设置限流。
单击 设置限流 ,您可对 SQL 进行限流,详见 设置 SQL 限流。
选择多个 SQL ,单击 批量设置限流 ,在弹窗框中输入并发数,可对相关 SQL 进行相同并发数限流设置。