等级 | 类型 | 规则名称 | 分值 | 规则说明 |
---|---|---|---|---|
PLAN | INDEX | 高频全表扫描 | 0.5 | 表大小超过200M,且SQL高频执行(15分钟内超过500次),PIR 3级,表大小超过高速缓存的1.5%,报PIR 2级。 |
SQLA | GENERAL | 禁止使用select * | 0.5 | 禁止使用select * ,必须明确选择所需的列,每句SQL扣0.5分。 |
SQLA | GENERAL | 禁止出现重复查询子句 | 0.5 | 可以使用with as替换子句来提升SQL语句执行效率,每句SQL扣0.5分。 |
SQLA | GENERAL | 索引列函数 | 0.5 | 在查询索引列上发生函数调用(函数索引除外),每次扣0.5分。 |
SQLA | UPDATE | update禁止出现order by子句 | 0.5 | 防止DML过程出现不必要的排序,每句SQL扣0.5分。 |
SQLA | UPDATE | update必须出现where子句 | 1 | 防止DML过程出现全表锁,每句SQL扣1分。 |
SQLA | UPDATE | 禁止更新主键列值 | 1 | 不允许有SQL更新主键,每次SQL扣1分。 |
SQLA | SELECT | 禁止嵌套select子句 | 0.5 | 防止出现select子句的嵌套子查询,避免出现性能问题,每句SQL扣0.5分。 |
SQLA | DELETE | delete必须出现where子句 | 1 | 防止DML过程出现全表锁,每句SQL扣1分。 |
SQLA | DELETE | delete禁止出现order by子句 | 0.5 | 防止DML过程出现不必要的排序,每句SQL扣0.5分。 |
SQLA | INDEX | 索引全扫 | 0.1 | 执行计划里有INDEX FULL SCAN操作,每次扣0.1分。 |
PLAN | INDEX | 索引跳跃 | 0.2 | 执行计划里有INDEX SKIP SCAN操作,每次扣0.2分。 |
PLAN | INDEX | 全表扫描 | 0.5 | 对于大于200M的表全表扫描,执行计划里有TABLE ACCESS FULL操作,每次扣0.5分。 |
PLAN | JOIN | 笛卡尔积 | 1 | 缺少连接条件,导致SQL使用笛卡尔积的方式进行连接,每句SQL扣1分。 |
PLAN | JOIN | 嵌套连接过深 | 1 | 执行计划中嵌套连接深度超过6层,每句SQL扣1分。 |
PLAN | BIND | 绑定变量 | 0.2 | 未使用绑定变量的SQL,每句SQL扣0.2分。 |
PLAN | BIND | 隐式转换 | 0.5 | 在查询列上发生隐式转换,每次扣0.5分。 |
SQL扣分
猜你喜欢
转载自my.oschina.net/u/1474131/blog/1623194
今日推荐
周排行