4. 审核结果
审核任务列表
SQL审核列表页包括的重要信息。
- 列表标题与功能:
- 标题为"审核列表",展示了所有SQL审核任务的概况
- 顶部有搜索框,可根据SQL或任务名称快速查找特定审核任务
- "创建审核"按钮,用于启动新的SQL审核任务
- 审核任务基本信息:
- 审核名称:如Audit_WL_2024053011O1,唯一标识每个审核任务
- 工作空间:部分任务显示了具体的工作空间,如WP_DDL.File_202405221623
- SQL数目:每个任务审核的SQL语句数量,范围从8到29不等
- 审核模板:所有任务都使用"MySQL最佳模板"进行审核
- 审核结果与质量评估:
- 平均评分:反映SQL质量的数值指标,从5分到77分不等
- 审核级别:使用不同颜色和标签表示SQL问题的严重程度
- 红色"严重":表示有严重问题需要立即修复
- 黄色"警告":表示有需要注意的问题
- 蓝色"建议":表示有可以改进的地方
- 问题数量:每个级别后的数字表示该类问题的数量,如"严重:1 警告:222 建议:16"
- 任务管理信息:
- 创建人:所有任务均由Admin创建,表明可能是管理员或主要负责人
- 创建时间:记录任务创建的准确时间,按时间倒序排列(最新的在前)
- 操作:每行末尾的"删除"按钮,允许移除不需要的审核任务
审核任务概要
SQL审核的概要部分包括以下重要信息:
- 审核概要: 显示了审核的基本信息,如审核名称(Audit_WL_202405242237)和审核模板(MySQL巡检模板)。
- 创建人: 审核是由Admin创建的。
- 创建时间: 审核创建的时间是2024年5月24日 22:37:37。
- SQL数目: 审核中包含的SQL语句总数是29条。
- 平均评分: 审核给出的平均评分是70分。
此外,页面还展示了两个圆形图表:
- SQL类型:SQL类型分布,主要分为DDL/DML/Query/其它
- 风险级别:风险级别分布,颜色区分表示不同级别的风险(红色代表高风险,绿色代表低风险)
该页面具有以下分析功能:
- 审核规则展示:页面右侧列出了Top 5的审核规则,如"对象命名规范加强"、"对于入参建议使用强制约束"等,并显示了每条规则的使用次数。
- SQL类型分类:通过圆形图表直观地展示SQL语句的类型分布。
- 风险级别分析:使用圆形图表展示不同级别风险的分布情况,帮助快速识别高风险区域。
- 评分范围筛选:底部有一个滑动条,可以根据SQL语句的评分范围进行筛选,聚焦于特定评分区间的SQL语句。
- SQL语句列表:展示每条SQL语句的详细信息,包括SQL内容、类型(如DDL)、审核结果(如"严重"、"建议"等)以及得分。
- 筛选功能:页面顶部有"选择规则"和"SQL类型"的下拉菜单,允许用户根据特定规则或SQL类型进行筛选,实现精确分析。
审核详情
SQL审核的详情部分展示了针对特定SQL语句的深入分析,包括以下重要信息:
-
审核对象:显示了当前被审核的SQL语句全文。在这个例子中,是一个创建表的DDL语句:
CREATE TABLE REGION (
R_REGIONKEY INT NOT NULL,
R_NAME CHAR(25) NOT NULL,
R_COMMENT VARCHAR(152) DEFAULT NULL
) ENGINE=INNODB DEFAULT CHARSET=UTF8MB4 COLLATE=UTF8MB4_0900_AI_CI -
违反的审核规则:列出了这条SQL语句违反的具体规则,每条规则都有明确的描述和严重程度标识: a. 表必须有注释(警告级别)- REGION表缺少注释 b. 表必须有主键(严重级别)- REGION表未定义主键 c. 禁止在表上定义数据从字符集(警告级别)- REGION(UTF8MB4)违反了这一规则 d. 非空列需指定默认值(警告级别)- R_NAME和R_REGIONKEY列是非空列,但未指定默认值
-
规则严重程度:使用不同的图标和颜色来表示规则违反的严重程度:
- 红色感叹号(⛔):表示严重级别,如"表必须有主键"
- 黄色三角形(⚠):表示警告级别,如"表必须有注释"等
-
相关对象:明确指出哪些数据库对象(如表、列)违反了规则:
- REGION表:缺少注释、主键
- REGION(UTF8MB4):数据库字符集问题
- R_NAME, R_REGIONKEY列:非空但无默认值
-
审核结果反馈:在每条违反规则的描述旁边有一个竖起大拇指的图标(👍),可能用于用户对审核结果进行反馈,如标记误报或确认问题。
通过这个详细的审核报告,开发人员可以清楚地了解到:
- 这个CREATE TABLE语句有多个问 题需要修正。
- 最严重的问题是没有定义主键,这可能会导致数据完整性和性能问题。
- 其他问题如缺少表注释、使用非标准字符集等,虽然是警告级别,但也应该根据组织的最佳实践进行调整。
- 非空列缺少默认值,这在某些情况下可能会导致插入数据时的问题。
这种详细的审核报告不仅指出了问题,还提供了问题的严重程度和具体位置,有助于开发人员快速定位并修复SQL语句中的各种问题,从而提高数据库设计和SQL编写的质量。