一种数据库SQL质量审核系统的制作方法

未命名 08-28 阅读:163 评论:0

一种数据库sql质量审核系统
技术领域
1.本发明涉及sql质量审核技术领域,具体涉及一种数据库sql质量审核系统。


背景技术:

2.数据库作为各种信息系统的核心部分,不规范的数据库操作容易导致事务响应超时、数据库故障等问题,直接影响整个应用的可用性,特别是在金融行业核心系统中,对系统运行的高可用和稳定性有特殊要求,系统中运行的所有sql语句都必须纳入审核管理,做到上线有审核,出问题可追溯,并尽可能将问题暴露提前到研发测试阶段。因此,有必要对程序中的sql语句进行审核,以保障系统的平稳运行。
3.现有的一种数据库sql质量审核系统,是基于开发人员编写的sql语句语法的正确率,然而参与项目开发的开发人员有很多,每个开发人员虽然都基于sql开发文档进行开发,但是每个开发人员开发技能和经验都不尽相同,这将直接导致影响sql运行的速率并最终影响项目开发进度以及最终项目运行效率;
4.为了解决上述问题,本发明提出了一种解决方案。


技术实现要素:

5.本发明的目的在于解决现有技术中由于参与项目开发的开发人员有很多,每个开发人员虽然都基于sql开发文档进行开发但是每个开发人员开发技能和经验都不尽相同,这将直接导致影响sql运行的速率并最终影响项目开发进度以及最终项目运行效率的问题。
6.本发明的目的可以通过以下技术方案实现:
7.一种数据库sql质量审核系统,包括:
8.编译模块,开发人员在进行编程项目功能开发过程中对数据库进行操作,所述开发人员对数据库进行操作的方式是键入sql语句,所述编译模块包括预编译单元和优化提醒单元;
9.所述预编译单元识别到开发人员键入的一条sql语句后依据该sql语句生成其对应的预审核sql语句;
10.一条所述sql语句是以“;”为结尾,所述预编译单元识别到“;”后等待t1时间,若识别到的“;”未被删除或更改,则将该“;”前的内容识别为一条sql语句,所述t1为预设时间阈值;
11.审核模块对预审核sql语句后按照一定的审核规则对其进行执行质量审核,具体审核规则如下:
12.s11:获取预审核sql语句中用每个表的扫描数h1、h2、...、hh、逻辑读取数i1、i2、...、ih和物理读取数j1、j2、...、jh,h≥1;
13.获取预审核sql语句中包含事务处理语言的关键词数量l1、数据控制语言的关键词数量l2、数据定义语言的关键词数量l3和指针控制语言的关键词数量l4;
14.s12:利用公式
15.计算获取预审核sql语句的质量评优值k1,所述β1、β2、β3和β4为sql语句各部分的预设评定基数;
16.s13:若k1》kmax,所述审核模块判定预审查sql语句为低效sql语句,所述审核模块生成低效覆写指令并将其传输到优化提醒单元,所述优化提醒单元接收到审核模块传输的低效覆写指令后提醒开发人员对该预审查sql语句进行重新编写;
17.若kmin≤k1≤kmax,所述审核模块判定预审查sql语句为中效sql语句,所述审核模块生成中效优化指令并将其传输到优化提醒单元,所述优化提醒单元接收到审核模块传输的中效优化指令后提醒开发人员对该预审查sql语句进行优化,并实时获取优化后的sql语句;
18.所述审核模块将优化后的sql语句传输到审核模块进行质量审核;
19.若k1《kmin,所述审核模块不做任何处理,所述kmin为预设质量评优最小值,所述kmax为预设质量评优最大值;
20.筛选模块,按照一定的筛选规则对编程项目功能中包含的所有sql语句进行筛选获取编程项目功能中所有待分析sql语句和其对应的待分析数据;
21.数据分析模块,按照一定的分析步骤对编程项目功能中所有待分析sql语句和其对应的待分析数据进行分析获取待分析sql语句的执行参数调节数λ。
22.进一步的,一条所述sql语句中有且只包含一个“;”。
23.进一步的,所述筛选模块筛选获取编程项目功能中所有待分析sql语句和其对应的待分析数据的筛选规则如下:
24.s31:设置statistics,使用set statistics profile on方法,对编程项目中所有功能内包含的每个sql语句的执行查询所需时间进行获取,并将每个sql语句的执行查询所需获取时间,依次标记为a1、a2、...、aa,a≥1;
25.s32:以sql语句执行查询所需获取时间a1为例,将a1和a进行大小比较:
26.s321:若a1≤a,则将sql语句执行查询所需获取时间a对应的sql语句重新标定为待分析sql语句;
27.使用setstatisticsioon方法,获取待分析sql语句中引用每个表的扫描数、逻辑读取数和物理读取数并依据其生成待分析sql语句的待分析数据;
28.s322:反之,不做任何处理,所述a为预设执行查询所需获取时间阈值;
29.s33:按照s31到s32步骤依次将sql语句执行查询所需获取时间a1、a2、...、aa和a进行大小比较,获取所有待分析sql语句和其对应的待分析数据
30.进一步的,所述编译模块还包括辅助显示单元,所述辅助显示单元对预审核sql语句进行预编译执行。
31.进一步的,还包括评定告警模块,所述评定告警模块中存储有应用于编程项目的sql开发规范文档。
32.进一步的,所述评定告警模块用于对参与编程项目功能开发中所有开发人员对于sql开发规范的熟练度进行判定,所述评定告警模块获取到编程项目功能开发中所有sql语句后按照一定的评定标准对其进行能力评定,具体的评定标准如下:
33.s21:以一个参与编程项目功能开发的开发人员为例,获取该开发人员编辑的所有
sql语句的数量m;
34.获取该开发人员编辑的所有sql语句中分别被评定为低效sql语句的数量m1和中效sql语句的数量m2;
35.s22:利用公式计算获取当前该开发人员对于sql开发规范的熟练度n1,所述η1、η2为预设因子;
36.s23:若n1《n,则判定该开发人员对于sql开发规范不熟悉,所述评定告警模块生成告警指令并将sql开发规范传输给开发人员进行熟悉,进而提高个人的sql开发能力,所述n为预设熟练度阈值;
37.反之,则不做任何处理。
38.本发明的有益效果:
39.(1)本发明通过设置编译模块获取开发人员在进行编程项目功能开发过程中键入的sql语句,审核模块对开发人员键入的sql语句进行质量审核,辅助显示单元同步进行执行编译,一方面避免了对开发人员键入的sql语句进行审核判定的过程中影响项目开发效率;另一方面避免键入低效的sql语句对编程项目中功能的运行效率造成影响;且筛选模块对开发人员键入的sql语句进行筛选,数据分析模块对筛选后的sql语句进行分析,从sql语句的执行效率上对其进行质量评定,保障系统的平稳运行;
40.(2)本发明通过设置评定告警模块,对开发人员基于sql开发文档的熟练度进行评定,加强开发人员基于sql语句的开发能力,从根本上提高项目的质量,避免后期优化造成的人力和时间资源上的浪费。
附图说明
41.下面结合附图对本发明作进一步的说明。
42.图1是本发明的系统框图。
具体实施方式
43.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
44.如图1所示,一种数据库sql质量审核系统,包括编译模块、审核模块、评定告警模块、筛选模块和数据分析模块;
45.所述编译模块用于开发人员在进行编程项目功能开发过程中对数据库进行操作,在本实施例中,所述开发人员对数据库进行操作的方式是键入sql语句,所述编译模块包括预编译单元、优化提醒单元和辅助显示单元;
46.所述预编译单元识别到开发人员键入的一条sql语句后依据该sql语句生成其对应的预审核sql语句并将其分别传输到辅助显示单元和审核模块,在本实施例中,一条sql语句是以“;”为结尾,所述预编译单元识别到“;”后等待t1时间,若识别到的“;”未被删除或更改,则将该“;”前的内容识别为一条sql语句,在本实施例中,一条所述sql语句中有且只
有一个“;”;
47.所述辅助显示单元接收到预编译单元传输的预审核sql语句后对其进行预执行,保证开发人员开发过程中的效率;
48.所述审核模块接收到预编译单元传输的预审核sql语句后按照一定的审核规则对其进行执行质量审核,具体的审核规则如下:
49.s11:获取预审核sql语句中用每个表的扫描数h1、h2、...、hh、逻辑读取数i1、i2、...、ih和物理读取数j1、j2、...、jh,h≥1;
50.获取预审核sql语句中包含事务处理语言的关键词数量l1、数据控制语言的关键词数量l2、数据定义语言的关键词数量l3和指针控制语言的关键词数量l4;
51.s12:利用公式
52.计算获取预审核sql语句的质量评优值k1,所述β1、β2、β3和β4为sql语句各部分的预设评定基数;
53.s13:若k1》kmax,所述审核模块判定预审查sql语句为低效sql语句,所述审核模块生成低效覆写指令并将其传输到优化提醒单元,所述优化提醒单元接收到审核模块传输的低效覆写指令后提醒开发人员对该预审查sql语句进行重新编写;
54.若kmin≤k1≤kmax,所述审核模块判定预审查sql语句为中效sql语句,所述审核模块生成中效优化指令并将其传输到优化提醒单元,所述优化提醒单元接收到审核模块传输的中效优化指令后提醒开发人员对该预审查sql语句进行优化,并实时获取优化后的sql语句;
55.所述审核模块将优化后的sql语句传输到审核模块进行质量审核;
56.若k1《kmin,所述审核模块不做任何处理,所述kmin为预设质量评优最小值,所述kmax为预设质量评优最大值;
57.所述评定告警模块用于对参与编程项目功能开发中所有开发人员对于sql开发规范的熟练度进行判定,所述评定告警模块获取到编程项目功能开发中所有sql语句后按照一定的评定标准对其进行能力评定,具体的评定标准如下:
58.s21:以一个参与编程项目功能开发的开发人员为例,获取该开发人员编辑的所有sql语句的数量m;
59.获取该开发人员编辑的所有sql语句中分别被评定为低效sql语句的数量m1和中效sql语句的数量m2;
60.s22:利用公式计算获取当前该开发人员对于sql开发规范的熟练度n1,所述η1、η2为预设因子;
61.s23:若n1《n,则判定该开发人员对于sql开发规范不熟悉,所述评定告警模块生成告警指令并将sql开发规范传输给开发人员进行熟悉,进而提高个人的sql开发能力;
62.反之,则不做任何处理;
63.s24:按照s21到s22步骤依次获取参与编程项目功能开发中所有开发人员对于sql开发规范的熟练度n1、n2、...、nn,n≥1并对其进行对应处理;
64.所述筛选模块,对编程项目功能中包含的所有sql语句进行筛选,具体的筛选步骤
如下:
65.s31:设置statistics,使用set statistics profile on方法,对编程项目中所有功能内包含的每个sql语句的执行查询所需时间进行获取,并将每个sql语句的执行查询所需获取时间,依次标记为a1、a2、...、aa,a≥1;
66.s32:以sql语句执行查询所需获取时间a1为例,将a1和a进行大小比较:
67.s321:若a1≤a,则将sql语句执行查询所需获取时间a对应的sql语句重新标定为待分析sql语句;
68.使用setstatisticsioon方法,获取待分析sql语句中引用每个表的扫描数、逻辑读取数和物理读取数并依据其生成待分析sql语句的待分析数据;
69.s322:反之,不做任何处理,所述a为预设时间阈值;
70.s33:按照s22步骤依次将sql语句执行查询所需获取时间a1、a2、...、aa和a进行大小比较,获取所有待分析sql语句和其对应的待分析数据;
71.所述数据分析模块用于对筛选模块筛选获取的所有待分析sql语句和其对应的待分析数据进行分析,具体的分析步骤如下:
72.s41:获取所有的待分析sql语句并依次将其标记为b1、b2、...、ba;
73.s42:以待分析sql语句b1为例,获取待分析sql语句b1对应的待分析数据中每个表的扫描数c1、c2、...、cc,c≥1、逻辑读取数d1、d2、...、dc和物理读取数e1、e2、...、ec;
74.s43:利用公式计算获取待分析sql语句b1中每个表的扫描数、逻辑读取数和物理读取数基于待分析sql语句b1执行查询所需获取时间的共轭执行参数f1,所述tb1为待分析sql语句b1的执行查询所需获取时间,所述
ɑ
1、
ɑ
2和
ɑ
3为预设调节因子,所述δ为预设系统影响参数;
75.s44:按照ss31到s33计算获取待分析sql语句b1、b2、...、ba中每个表的扫描数、逻辑读取数和物理读取数基于待分析sql语句b1执行查询所需获取时间的共轭执行参数f1、f2、...、fa;
76.s45:利用公式计算获取待分析sql语句b1、b2、...、ba中每个表的扫描数、逻辑读取数和物理读取数基于待分析sql语句b1执行查询所需获取时间的共轭执行参数f1、f2、...、fa的离散值g,将g和g1进行大小比较,若g≥g1,则按照|ff-f|从大到小的顺序依次删除对应的ff值,并计算剩余ff的离散值g,将g再次和g1进行大小比较,直至g《g1;所述g1为预设离散值阈值,所述f为参与离散值计算的剩余ff的平均值将其重新标定为待分析sql语句的执行参数调节数,标记为λ;
77.在说明书的描述中,参考术语“一个实施例”、“示例”、“具体示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
78.以上内容仅仅是对本发明所作的举例和说明,所属本技术领域的技术人员对所描
述的具体实施例做各种各样的修改或补充或采用类似的方式替代,只要不偏离发明或者超越本权利要求书所定义的范围,均应属于本发明的保护范围。
79.以上对本发明的一个实施例进行了详细说明,但所述内容仅为本发明的较佳实施例,不能被认为用于限定本发明的实施范围。凡依本发明申请范围所作的均等变化与改进等,均应仍归属于本发明的专利涵盖范围之内。

技术特征:
1.一种数据库sql质量审核系统,其特征在于,包括:编译模块,开发人员在进行编程项目功能开发过程中对数据库进行操作,所述开发人员对数据库进行操作的方式是键入sql语句,所述编译模块包括预编译单元和优化提醒单元;所述预编译单元识别到开发人员键入的一条sql语句后依据该sql语句生成其对应的预审核sql语句;一条所述sql语句是以“;”为结尾,所述预编译单元识别到“;”后等待t1时间,若识别到的“;”未被删除或更改,则将该“;”前的内容识别为一条sql语句,所述t1为预设时间阈值;审核模块对预审核sql语句后按照一定的审核规则对其进行执行质量审核,具体审核规则如下:s11:获取预审核sql语句中用每个表的扫描数h1、h2、...、hh、逻辑读取数i1、i2、...、ih和物理读取数j1、j2、...、jh,h≥1;获取预审核sql语句中包含事务处理语言的关键词数量l1、数据控制语言的关键词数量l2、数据定义语言的关键词数量l3和指针控制语言的关键词数量l4;s12:利用公式计算获取预审核sql语句的质量评优值k1,所述β1、β2、β3和β4为sql语句各类型的预设评定基数;s13:若k1>kmax,所述审核模块判定预审查sql语句为低效sql语句,所述审核模块生成低效覆写指令并将其传输到优化提醒单元,所述优化提醒单元接收到审核模块传输的低效覆写指令后提醒开发人员对该预审查sql语句进行重新编写;若kmin≤k1≤kmax,所述审核模块判定预审查sql语句为中效sql语句,所述审核模块生成中效优化指令并将其传输到优化提醒单元,所述优化提醒单元接收到审核模块传输的中效优化指令后提醒开发人员对该预审查sql语句进行优化,并实时获取优化后的sql语句;所述审核模块将优化后的sql语句传输到审核模块进行质量审核;若k1<kmin,所述审核模块不做任何处理,所述kmin为预设质量评优最小值,所述kmax为预设质量评优最大值;筛选模块,按照一定的筛选规则对编程项目功能中包含的所有sql语句进行筛选获取编程项目功能中所有待分析sql语句和其对应的待分析数据;数据分析模块,按照一定的分析步骤对编程项目功能中所有待分析sql语句和其对应的待分析数据进行分析获取待分析sql语句的执行参数调节数λ。2.根据权利要求1所述的一种数据库sql质量审核系统,其特征在于,一条所述sql语句中有且只包含一个“;”。3.根据权利要求1所述的一种数据库sql质量审核系统,其特征在于,所述筛选模块筛选获取编程项目功能中所有待分析sql语句和其对应的待分析数据的筛选规则如下:s31:设置statistics,使用set statistics profile on方法,对编程项目中所有功能内包含的每个sql语句的执行查询所需时间进行获取,并将每个sql语句的执行查询所需获取时间,依次标记为a1、a2、...、aa,a≥1;
s32:以sql语句执行查询所需获取时间a1为例,将a1和a进行大小比较:s321:若a1≤a,则将sql语句执行查询所需获取时间a对应的sql语句重新标定为待分析sql语句;使用setstatisticsioon方法,获取待分析sql语句中引用每个表的扫描数、逻辑读取数和物理读取数并依据其生成待分析sql语句的待分析数据;s322:反之,不做任何处理,所述a为预设执行查询所需获取时间阈值;s33:按照s31到s32步骤依次将sql语句执行查询所需获取时间a1、a2、...、aa和a进行大小比较,获取所有待分析sql语句和其对应的待分析数据。4.根据权利要求1所述的一种数据库sql质量审核系统,其特征在于,所述编译模块还包括辅助显示单元,所述辅助显示单元对预审核sql语句进行预编译执行。5.根据权利要求1所述的一种数据库sql质量审核系统,其特征在于,还包括评定告警模块,所述评定告警模块中存储有应用于编程项目的sql开发规范文档。6.根据权利要求5所述的一种数据库sql质量审核系统,其特征在于,所述评定告警模块用于对参与编程项目功能开发中所有开发人员对于sql开发规范的熟练度进行判定,所述评定告警模块获取到编程项目功能开发中所有sql语句后按照一定的评定标准对其进行能力评定,具体的评定标准如下:s21:以一个参与编程项目功能开发的开发人员为例,获取该开发人员编辑的所有sql语句的数量m;获取该开发人员编辑的所有sql语句中分别被评定为低效sql语句的数量m1和中效sql语句的数量m2;s22:利用公式计算获取当前该开发人员对于sql开发规范的熟练度n1,所述η1、η2为预设因子;s23:若n1<n,则判定该开发人员对于sql开发规范不熟悉,所述评定告警模块生成告警指令并将sql开发规范传输给开发人员进行熟悉,进而提高个人的sql开发能力,所述n为预设熟练度阈值;反之,则不做任何处理。

技术总结
本发明公开了一种数据库SQL质量审核系统,涉及SQL质量审核技术领域,本发明通过编译模块获取开发人员在进行编程项目功能开发过程中键入的SQL语句,审核模块对键入的SQL语句基于执行速率进行质量审核,辅助显示单元同步进行执行编译,避免对开发人员键入的SQL语句进行审核判定的过程中影响项目开发效率的同时避免键入低效的SQL语句对编程项目中功能的运行效率造成影响;筛选模块对键入的SQL语句进行筛选分析,从SQL语句的执行效率上对其进行质量评定,保障系统的平稳运行;评定告警模块,对开发人员基于SQL开发文档的熟练度进行评定,加强开发人员基于SQL语句的开发能力,从根本上提高项目的质量,避免后期优化造成的人力和时间资源上的浪费。力和时间资源上的浪费。力和时间资源上的浪费。


技术研发人员:刘怀民 李培聪 郑玉华 李杰 陈敏航
受保护的技术使用者:福建意德信息技术有限公司
技术研发日:2023.05.09
技术公布日:2023/8/24
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐