System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种SQL代码质量控制方法、装置、设备和存储介质制造方法及图纸_技高网

一种SQL代码质量控制方法、装置、设备和存储介质制造方法及图纸

技术编号:41482347 阅读:3 留言:0更新日期:2024-05-30 14:31
本发明专利技术公开了一种SQL代码质量控制方法、装置、设备和存储介质,获取待检测SQL项目文件,对待检测SQL项目文件进行提取,得到多个SQL语句,并对各个SQL语句定义标识,根据各个SQL语句和各个SQL语句对应的标识,生成语句清单,对语句清单进行规则校验,得到校验结果,根据校验结果得到待检测SQL项目文件的问题信息,本发明专利技术可以实现了对SQL代码的质量检查,提高了SQL代码质量检查效率。

【技术实现步骤摘要】

本专利技术涉及计算机,尤其涉及一种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代码质量控制方法、装置、设备和存储介质,实现了对sql代码的质量检查,提高了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至5任一项所述的SQL代码质量控制方法的步骤。

...

【技术特征摘要】

1.一种sql代码质量控制方法,其特征在于,包括:

2.如权利要求1所述的sql代码质量控制方法,其特征在于,所述获取待检测sql项目文件,包括:

3.如权利要求1所述的sql代码质量控制方法,其特征在于,所述对所述语句清单进行规则校验,得到校验结果,包括:

4.如权利要求3所述的sql代码质量控制方法,其特征在于,所述规则配置包括所述待检测sql项目文件的数据库源信息、规则列表和白名单配置。

5.一种sql代码质量控制装置,其特征在于,包括:

6.如权利要求5所述的sql代码质...

【专利技术属性】
技术研发人员:余心如唐海勇区伟洪蔡家豪李金华苏荻翔
申请(专利权)人:广发银行股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1