---
title: "SQL Review 的诊断项 - OceanBase 数据库 V4.2.0 | OceanBase 文档中心"
description: SQL Review 的诊断项 本文例举 SQL Review 诊断项，具体说明如下。 诊断项 描述 参与分区数过多 SQL 执行时，过多的分区参与了计算，浪费系统资源。 谓词计算 Where 子句中包含了对列的计算，导致索引无法生效。 左模糊匹配 使用 like &quot;%xxx&quot; 或者 like &quot;%xxx%&quot; 存在左…
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 4.2.0

# SQL Review 的诊断项

更新时间：2024-04-19 09:30:55

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.2.0/zh-CN/700.reference/1500.components-and-tools/200.monitor-and-diagnos/200.sql_diagnoser/300.sql_diagnoser-paramenters/400.sql_diagnoser-review-items.md)  

本文例举 SQL Review 诊断项，具体说明如下。

| 诊断项 | 描述 |
| --- | --- |
| 参与分区数过多 | SQL 执行时，过多的分区参与了计算，浪费系统资源。 |
| 谓词计算 | Where 子句中包含了对列的计算，导致索引无法生效。 |
| 左模糊匹配 | 使用 `like "%xxx"` 或者 `like "%xxx%"` 存在左模糊匹配，导致索引无法生效 。 |
| `in` 数目太多 | `in` 数目太多，建议不超过200个， 如 `in(?,?,?..)` 。 |
| 表连接数太多 | 表连接数太多，建议不超过 10 个，否则剪枝后无最优计划。 |
| `not in` 子句没添加 `not null` 标识 | `not in` 子句需要添加 `not null` 标识，避免 `nested loop join` 。 |
| Where 条件恒真 | Update/Delete 不带 Where 条件或者 Where 条件恒真。 |
| 使用 `not in` | 少用 `not in`，存在空值处理的特殊逻辑，很难把控语义。 |
| 使用不含字段列表的 Insert/Replace 语句 | 不建议使用不含字段列表的 Insert/Replace 语句。 |
| Update/Delete/Select 语句不带索引键 | Update/Delete/Select 语句不带索引键，导致全表扫描。 |
| 分区表操作不带分区键 | 分区表操作不带分区键，导致无法进行分区裁剪。 |
| 索引过多 | 索引不宜过多，避免冗余重复。 |
| 列上数据倾斜 | Where 子句中的列存在数据倾斜问题。 |
| 创建索引需要手动指定 Global/Local 关键字 | 创建索引需要手动指定 Global/Local 关键字，推荐局部索引。 |
| 表字段数目过多 | 表字段数目不宜过多。 |

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
