System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及计算机,尤其涉及一种sql代码质量控制方法、装置、设备和存储介质。
技术介绍
1、日常研发过程中,开发人员众多且技术水平参差不齐。一旦有经验不足、数据库开发技能不强的开发人员编写了低质量的sql代码,就可能影响数据库性能,比如系统运行缓慢、崩溃、页面无法打开等。这些低质量的sql代码在测试阶段难以被发现,一旦部署到生产环境,就可能会给产品带来不可估量的影响。当前低质量sql代码的检测手段主要依靠有经验的dba(数据库管理员)进行人工检查,这需要耗费大量的人力资源。因此需要一种企业级的sql代码质量管理工具来对项目代码中的sql代码进行自动化、大批量的质量检测,检测其是否存在不合理的查询或者以及是否满足规定的开发规范。
2、在现有技术中,了解现有的sql规范检测工具主要有yearning审核工具、sqle审核工具与owl s审核工具等。但是yearningsql审核平台自动化程度不高,需要dba手动提交sql进行检测;sqle审核工具虽然可以通过在jenkins上添加bash类型任务来接入标准开发流程,无需手动提交sql代码,但是在多项目的情况下,需要手动的为每个项目的jenkins流程添加任务。sqle审核工具在面对多项目、大批量的检测时,仍需要耗费一定的人力,无法满足企业级工具的需求;owl s审核工具需要手动提交sql代码,自动化程度不高。
技术实现思路
1、为了解决上述技术问题,本专利技术实施例提供了一种sql代码质量控制方法、装置、设备和存储介质,
2、本专利技术实施例的第一方面提供了一种sql代码质量控制方法,方法包括:
3、获取待检测sql项目文件;
4、对待检测sql项目文件进行提取,得到多个sql语句,并对各个sql语句定义标识,根据各个sql语句和各个sql语句对应的标识,生成语句清单;
5、对语句清单进行规则校验,得到校验结果,根据校验结果得到待检测sql项目文件的问题信息。
6、在第一方面的一种可能的实现方式中,获取待检测sql项目文件,包括:
7、利用预编译模块对sql源代码进行编译,得到sql项目文件;
8、将sql项目文件存入缓存表中,得到待检测sql项目文件。
9、在第一方面的一种可能的实现方式中,对语句清单进行规则校验,得到校验结果,包括:
10、对规则配置进行元数据解析,得到规则集合;
11、根据规则集合,对语句清单进行规则校验,得到校验结果,其中,校验结果包括语句违反规则清单类、复杂语句类和检测异常信息类。
12、在第一方面的一种可能的实现方式中,规则配置包括所述待检测sql项目文件的数据库源信息、规则列表和白名单配置。
13、本专利技术实施例的第二方面提供了一种sql代码质量控制装置,装置包括:
14、获取模块,用于获取待检测sql项目文件;
15、提取模块,用于对所述待检测sql项目文件进行提取,得到多个sql语句,并对各个所述sql语句定义标识,根据各个所述sql语句和各个所述sql语句对应的标识,生成语句清单;
16、校验模块,用于对所述语句清单进行规则校验,得到校验结果,根据所述校验结果得到所述待检测sql项目文件的问题信息。
17、在第二方面的一种可能的实现方式中,获取模块包括编译单元和缓存单元,
18、其中,编译单元用于利用预编译模块对sql源代码进行编译,得到sql项目文件;
19、缓存单元用于将sql项目文件存入缓存表中,得到待检测sql项目文件。
20、在第一方面的一种可能的实现方式中,校验模块包括解析单元和规则校验单元,
21、其中,解析单元用于对规则配置进行元数据解析,得到规则集合;
22、规则校验单元用于根据规则集合,对语句清单进行规则校验,得到校验结果,其中,校验结果包括语句违反规则清单类、复杂语句类和检测异常信息类。
23、在第一方面的一种可能的实现方式中,规则配置包括所述待检测sql项目文件的数据库源信息、规则列表和白名单配置。
24、在第一方面的一种可能的实现方式中,信息编号是通过分段编号组成的,信息编号包括具体信息号、功能编号和信息类编号。
25、本专利技术实施例的第三方面提供了一种计算机设备,包括:
26、存储器,用于存储计算机程序;
27、处理器,用于执行所述计算机程序时实现如第一方面的sql代码质量控制方法。
28、本专利技术实施例的第四方面提供了一种存储介质,存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面的sql代码质量控制方法的步骤。
29、本专利技术实施例提供的获取待检测sql项目文件,对待检测sql项目文件进行提取,得到多个sql语句,并对各个sql语句定义标识,根据各个sql语句和各个sql语句对应的标识,生成语句清单,对语句清单进行规则校验,得到校验结果,根据校验结果得到待检测sql项目文件的问题信息。由此可知,本专利技术实施例可以实现了对sql代码的质量检查,提高了sql代码质量检查效率。
本文档来自技高网...【技术保护点】
1.一种SQL代码质量控制方法,其特征在于,包括:
2.如权利要求1所述的SQL代码质量控制方法,其特征在于,所述获取待检测SQL项目文件,包括:
3.如权利要求1所述的SQL代码质量控制方法,其特征在于,所述对所述语句清单进行规则校验,得到校验结果,包括:
4.如权利要求3所述的SQL代码质量控制方法,其特征在于,所述规则配置包括所述待检测SQL项目文件的数据库源信息、规则列表和白名单配置。
5.一种SQL代码质量控制装置,其特征在于,包括:
6.如权利要求5所述的SQL代码质量控制装置,其特征在于,所述获取模块包括编译单元和缓存单元,
7.如权利要求5所述的SQL代码质量控制装置,其特征在于,所述校验模块包括解析单元和规则校验单元,
8.如权利要求5所述的SQL代码质量控制装置,其特征在于,所述规则配置包括所述待检测SQL项目文件的数据库源信息、规则列表和白名单配置。
9.一种计算机设备,其特征在于,包括:
10.一种存储介质,其特征在于,所述存储介质上存储有计算机程序
...【技术特征摘要】
1.一种sql代码质量控制方法,其特征在于,包括:
2.如权利要求1所述的sql代码质量控制方法,其特征在于,所述获取待检测sql项目文件,包括:
3.如权利要求1所述的sql代码质量控制方法,其特征在于,所述对所述语句清单进行规则校验,得到校验结果,包括:
4.如权利要求3所述的sql代码质量控制方法,其特征在于,所述规则配置包括所述待检测sql项目文件的数据库源信息、规则列表和白名单配置。
5.一种sql代码质量控制装置,其特征在于,包括:
6.如权利要求5所述的sql代码质...
【专利技术属性】
技术研发人员:余心如,唐海勇,区伟洪,蔡家豪,李金华,苏荻翔,
申请(专利权)人:广发银行股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。