SQL语句优化方法、装置、设备、存储介质及产品与流程

文档序号:27251300发布日期:2021-11-03 20:52阅读:117来源:国知局
SQL语句优化方法、装置、设备、存储介质及产品与流程
sql语句优化方法、装置、设备、存储介质及产品
技术领域
1.本发明涉及sql数据库技术领域,尤其涉及一种sql语句优化方法、装置、设备、存储介质及产品。


背景技术:

2.结构化查询语言(structured query language)简称sql,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
3.在数据库的工作中,经常需要对数据库执行的sql语句进行审核,数据库的sql语句审核是软件开发过程中重要的一环,通过审核可提升数据的整体性能。现有的sql语句审核方式通常是人工审核或系统自动审核,在人工审核或者系统自动审核发现sql语句存在问题时,告知研发人员sql语句有误,开发人员需要对sql进行修正优化。
4.现有的sql语句修正优化方式需要开发人员手动优化,手动优化不仅效率低、浪费时间,而且研发人员不清楚sql语句的哪部分有问题。


技术实现要素:

5.本发明提供一种sql语句优化方法、装置、设备、存储介质及产品,用以解决现有的sql语句优化时需人工对存在的问题进行手动优化的问题。
6.第一方面,本发明提供一种sql语句优化方法,包括:
7.接收结构化查询语言sql语句审核请求,根据所述sql语句审核请求获取待审核的sql语句;
8.采用预设的sql审核策略对所述待审核的sql语句进行审核获得对应的审核结果;
9.根据所述审核结果确定是否对sql语句进行优化;
10.若是,则根据所述审核结果对应的审核扣分项目对所述sql语句进行优化。
11.第二方面,本发明提供一种sql语句优化装置,包括:
12.请求接收单元,用于接收sql语句审核请求,根据所述sql语句审核请求获取待审核的sql语句;
13.审核单元,用于采用预设的sql审核策略对所述待审核的sql语句进行审核获得对应的审核结果;
14.确定单元,用于根据所述审核结果确定是否对sql语句进行优化;
15.优化单元,用于若是,则根据所述审核结果对应的审核扣分项目对所述sql语句进行优化。
16.第三方面,本发明提供一种电子设备,包括:至少一个处理器和存储器;
17.所述存储器存储计算机执行指令;
18.所述存储器存储计算机执行指令;
19.所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个
处理器执行如第一方面所述的方法。
20.第四方面,本发明提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如第一方面所述的方法。
21.第五方面,本发明提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现第一方面所述的方法。
22.本发明提供的一种sql语句优化方法、装置、设备、存储介质及产品,本发明通过接收sql语句审核请求,进一步根据sql语句审核请求获取待审核的sql语句,从而采用预设的sql审核策略对待审核的sql语句进行审核获得对应的审核结果;根据审核结果确定是否对sql语句进行优化;若是,则根据审核结果对应的审核扣分项目对sql语句进行优化。本发明根据审核结果可确定sql语句是否存在问题,从而根据审核扣分项目对存在问题的sql语句进行自动优化,提高优化效率,减少优化时间。
附图说明
23.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
24.图1是本发明提供的sql语句优化方法的网络架构示意图;
25.图2是本发明实施例一提供的sql语句优化方法的流程示意图;
26.图3是本发明实施例三提供的sql语句优化方法的流程示意图;
27.图4是本发明实施例四提供的sql语句优化方法的流程示意图;
28.图5是本发明实施例五提供的sql语句优化方法的流程示意图;
29.图6是本发明实施例六提供的sql语句优化方法的流程示意图;
30.图7是本发明实施例七提供的sql语句优化方法的流程示意图;
31.图8是本发明实施例八提供的sql语句优化方法的流程示意图;
32.图9是本发明实施例九提供的sql语句优化方法的流程示意图;
33.图10是本发明一实施例提sql语句优化装置的结构示意图;
34.图11是用来实现本发明实施例的sql语句优化方法的电子设备的第一框图;
35.图12是用来实现本发明实施例的sql语句优化方法的电子设备的第二框图。
36.通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。
具体实施方式
37.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
38.为了清楚理解本技术的技术方案,首先对现有技术的方案进行详细介绍。
39.现有技术中,为了数据库安全,避免数据库更新及查询等任务对数据库性能带来
的风险,需要审核、评估研发人员提交的sql工单是否合理有效,评估通过后可在对应的数据上安装执行sql工单对应的操作(增、删、改、查、创建、批量等)。在现有的审核通常是人工审核或者系统针对sql语句自动审核,发现sql语句存在问题时,告知研发人员sql语句有误,开发人员需要对sql进行修正优化。
40.而现有技术中,研发人员得知sql语句有误时,需要查找sql语句错误部分,重新修改sql语句,但是研发人员水平参差不同,有可能不知道sql语句哪里有错误,或者需要花费一些时间才能找出问题所在,从而才能对sql语句进行修正优化。现有的优化sql语句的方式基于人工,手动优化不仅效率低、浪费时间,而且研发人员不清楚sql语句的哪部分有问题。
41.所以针对现有技术中sql语句修正优化方式需要开发人员对手动优化的问题,发明人在研究中发现,通过接收sql语句审核请求,进一步根据sql语句审核请求获取待审核的sql语句,从而采用预设的sql审核策略对待审核的sql语句进行审核获得对应的审核结果;根据审核结果确定是否对sql语句进行优化;若是,则根据审核结果对应的审核扣分项目对sql语句进行优化。根据审核结果可确定sql语句是否存在问题,从而根据审核扣分项目对存在问题的sql语句进行自动优化,提高优化效率,减少优化时间。
42.所以发明人基于上述的创造性发现,提出了本发明实施例的技术方案。下面对本发明实施例提供的sql语句优化方法的网络架构及应用场景进行介绍。
43.如图1所示,本发明实施例提供的sql语句优化方法对应的网络架构中包括:电子设备1及服务器2。电子设备1与服务器2进行通信连接。电子设备1中预先安装有sql语句优化方法对应的客户端。用户在客户端的操作界面的输入框中输入待审核的sql语句,点击确认按键,由此触发sql语句审核请求,电子设备1对sql语句审核请求进行解析,获取审核请求对应的待审核的sql语句,电子设备1获取服务器2发送的预设的sql审核策略,电子设备1采用预设的sql审核策略对待审核的sql语句进行审核获得对应的审核结果;根据审核结果确定是否对sql语句进行优化;若是,则根据审核结果对应的审核扣分项目对sql语句进行优化。根据审核结果可确定sql语句是否存在问题,从而根据审核扣分项目对存在问题的sql语句进行自动优化,提高优化效率,减少优化时间。
44.以下将参照附图来具体描述本发明的实施例。
45.实施例一
46.图2是本发明实施例一提供的sql语句优化方法的流程示意图,如图2所示,本实施例提供的sql语句优化方法的执行主体为sql语句优化装置,该sql语句优化装置位于电子设备中,则本实施例提供的sql语句优化方法包括以下步骤:
47.步骤101,接收结构化查询语言sql语句审核请求,根据sql语句审核请求获取待审核的sql语句。
48.本实施例中,sql语句优化装置包括web前端,用户可通过web前端对应的sql录入页面输入待审核的sql语句以及sql语句对应的数据库,从而触发sql语句审核请求,sql语句优化装置接收sql语句审核请求,解析sql语句审核请求获得待审核的sql语句以及sql语句对应的数据库。
49.其中,待审核的sql语句由待审核的sql工单构成,用户可添加一个或多个sql工单,或批量导入多个sql工单,由至少一个sql工单生成待审核的sql语句。
50.其中,sql语句对应的数据库是指执行该sql语句的数据库,数据库包括多个,例如sql数据库、ali

rds数据库、alidrds数据库,由用户指定执行sql语句的数据库。
51.步骤102,采用预设的sql审核策略对待审核的sql语句进行审核获得对应的审核结果。
52.本实施例中,由用户例如数据库管理员根据生产需要以及技术经验从sql审核工作中关注的性能问题设定sql审核策略,sql审核策略包括语法审核策略和执行计划审核策略,每个审核策略包括至少一个审核项目,每个审核项目对应一个审核分值,sql语句优化装置根据用户输入的sql审核策略生成预设的sql审核策略,采用预设的语法审核策略和/或执行计划审核策略对待审核的sql语句进行审核,得到审核结果。
53.步骤103,根据审核结果确定是否对sql语句进行优化。
54.本实施例中,根据得到的审核结果确定sql语句是否存在问题,若sql语句不存在问题,则不需要对sql语句进行优化,进一步告知用户sql语句不存在问题,可向用户终端发送sql语句审核通过的提示信息。若sql语句存在问题,则需要对sql语句进行优化,可向用户终端发送sql语句审核未通过的提示信息。
55.步骤104,若是,则根据审核结果对应的审核扣分项目对sql语句进行优化。
56.本实施例中,审核结果中包括审核扣分项目和/或审核得分项目、审核扣分项目对应的审核分值、审核得分项目对应的审核分值,审核得分项目表示对应的审核项目不存在问题,不需要进行优化,而审核扣分项目表示对应的审核项目存在问题,需要进一步优化,sql语句优化装置可根据审核扣分项目对sql语句进行优化。
57.本实施例中,根据审核结果可确定sql语句是否存在问题,从而根据审核扣分项目对存在问题的sql语句进行自动优化,提高优化效率,减少优化时间。
58.实施例二
59.在本发明实施例一提供的sql语句优化方法的基础上,对步骤103进行了进一步的细化,包括以下步骤:
60.步骤1031,获取审核结果对应的审核分值,确定审核分值是否等于预设分值;若是,则执行步骤1032;若否,则执行步骤1033。
61.本实施例中,获取审核结果对应的审核分值,该对应的审核分值为审核总分值,由多个审核得分项目对应的审核分值相加得到审核总分值。将审核结果对应的审核分值与预设分值进行比较,确定审核结果对应的审核分值是否等于预设分值,其中,预设分值为预设总分值。
62.步骤1032,确定无需对sql语句进行优化。
63.本实施例中,若审核结果对应的审核分值等于预设分值,说明sql语句得到了满分,通过审核,则需要对sql语句进行优化。
64.步骤1033,确定对sql语句进行优化。
65.本实施例中,若审核结果对应的审核分值等于预设分值,说明sql语句没有得到满分,通过未审核,存在扣分项目,则需要对sql语句进行优化。
66.实施例三
67.图3是本发明实施例三提供的sql语句优化方法的流程示意图,如图3所示,在本发明实施例一提供的sql语句优化方法的基础上,对步骤104进行了进一步的细化,包括以下
步骤:
68.步骤1041,根据审核扣分项目确定匹配的优化策略。
69.本实施例中,根据审核结果确定审核扣分项目,预先根据审核扣分项目建立审核扣分项目与优化策略的映射关系,不同的项目对应的优化策略是不同的,优化策略包括sql语句修改信息,根据映射关系确定匹配的优化策略。
70.步骤1042,采用匹配的优化策略对sql语句进行优化,以获得优化的sql语句。
71.本实施例中,sql语句进行优化装置读取匹配的优化策略中的sql语句修改信息,根据sql语句修改信息生成sql语句优化指令,从而对sql语句进行优化,得到优化的sql语句。
72.本实施例中,根据优化策略对存在问题的sql语句进行自动优化,提高优化效率,减少优化时间。
73.实施例四
74.图4是本发明实施例四提供的sql语句优化方法的流程示意图,如图4所示,在本发明实施例三提供的sql语句优化方法的基础上,对步骤1041进行了进一步的细化,包括以下步骤:
75.步骤1041a,获取预设的审核扣分项目与优化策略的映射关系。
76.本实施例中,审核扣分项目即扣分的审核项目,审核项目以及审核分值由用户预先设定,用户根据每个审核项目问题严重程度赋予不同的审核分值。
77.需要说明的是,审核项目以及审核分值可根据用户的设置进行更新。
78.步骤1041b,根据审核扣分项目、预设的审核扣分项目与优化策略的映射关系确定匹配的优化策略。
79.本实施例中,根据审核结果中审核扣分项目在预设的审核扣分项目与优化策略的映射关系中查找与审核扣分项目匹配的优化策略,进一步根据匹配的优化策略对sql语句进行优化。
80.实施例五
81.图5是本发明实施例五提供的sql语句优化方法的流程示意图,如图5所示,在本发明实施例三提供的sql语句优化方法的基础上,对步骤1042进行了进一步的细化,包括以下步骤:
82.步骤1042a,采用匹配的优化策略对sql语句进行调整获得调整后的sql语句,并采用sql审核策略对调整后的sql语句进行审核获得对应的审核结果。
83.本实施例中,采用匹配的优化策略对存在问题的sql语句进行调整,从而获得调整后的sql语句,并再次对sql语句进行审核,采用sql审核策略重新对调整后的sql语句进行审核,进一步获得对应的审核结果。
84.步骤1042b,根据审核结果确定是否对调整后的sql语句进行优化。
85.本实施例中,根据得到的审核结果确定调整后的sql语句是否存在问题,若调整后的sql语句不存在问题,则不需要对sql语句再次进行优化,进一步告知用户调整后的sql语句不存在问题,可向用户终端发送sql语句审核通过的提示信息,并将调整后的sql语句发送至用户终端,调整后的sql语句可直接使用。
86.需要说明的是,根据优化策略对存在问题的sql语句进行调整,得到的调整后的
sql语句通常是不存在问题的,但是也有可能调整后的sql语句还是存在问题,此时,可向用户终端发送调整后的sql语句审核未通过的提示信息,并将原sql语句和调整后的sql语句发送至用户终端。
87.步骤1042c,若否,则将调整后的sql语句确定为优化的sql语句。
88.本实施例中,若调整后的sql语句不存在问题,不需要对sql语句再次进行优化,将调整后的sql语句确定为优化的sql语句,将优化的sql语句发送至用户终端,用户可直接使用优化的sql语句执行对应的操作。
89.实施例六
90.图6是本发明实施例六提供的sql语句优化方法的流程示意图,如图6所示,在本发明实施例五提供的sql语句优化方法的基础上,步骤1042b之后,还包括以下步骤:
91.步骤1042d,若是,则将审核结果发送至用户终端,以供用户终端根据审核结果反馈优化策略。
92.本实施例中,若调整后的sql语句存在问题,需要对sql语句再次进行优化,将审核结果发送至用户终端,用户通过用户终端查看审核结果,根据审核结果生成对应的优化建议,根据优化建议生成优化策略,将优化策略反馈至sql语句优化装置。
93.或者将调整后的sql语句和审核结果发送至用户终端,用户通过用户终端查看调整后的sql语句和审核结果,用户对调整后的sql语句进行修改,根据修改后的sql语句生成优化策略,将优化策略反馈至sql语句优化装置。
94.步骤1042e,采用用户终端反馈的优化策略对调整后的sql语句进行优化,以获得优化的sql语句。
95.本实施例中,接收用户终端反馈的优化策略,并采用用户终端反馈的优化策略对调整后的sql语句进行优化获,从而进一步获得优化的sql语句。
96.可选地,步骤1042d之后,还包括以下步骤:
97.步骤1042f,将用户终端反馈的优化策略添加至对应的优化策略中,以更新对应的优化策略。
98.本实施例中,接收用户终端反馈的优化策略,将用户终端反馈的优化策略添加到对应的审核扣分项目对应的优化策略中,从而对预设的优化策略进行更新,以便为之后sql语句的审核提供更多的优化策略。
99.实施例七
100.图7是本发明实施例七提供的sql语句优化方法的流程示意图,如图7所示,在本发明上述实施例提供的sql语句优化方法的基础上,对步骤102进行了进一步的细化,包括以下步骤:
101.步骤1021,根据语法审核策略对待审核的sql语句进行审核获得语法审核结果,并根据执行计划策略对待审核的sql语句进行审核获得执行计划审核结果。
102.本实施例中,预设的sql审核策略包括语法审核策略和执行计划审核策略,其中,sql审核策略包括至少一个语法审核项目,执行计划审核策略包括至少一个执行计划审核项目,根据语法审核策略对应的语法审核项目对待审核的sql语句进行语法审核,从而获得语法审核结果,并根据执行计划审核策略对应的执行计划审核项目对sql语句进行执行计划审核,从而获得执行计划审核结果。
103.步骤1022,根据语法审核结果和执行计划审核结果生成对应的审核结果。
104.本实施例中,根据获得的语法审核结果和执行计划审核结果得到最终的审核结果,该审核结果中包括了审核扣分项目、审核得分项目以及各项目对应的审核分值。
105.实施例八
106.图8是本发明实施例八提供的sql语句优化方法的流程示意图,如图8所示,在本发明实施例七提供的sql语句优化方法的基础上,对步骤1021中根据语法审核策略对待审核的sql语句进行审核获得语法审核结果进行了进一步的细化,包括以下步骤:
107.步骤1021a,根据语法审核策略中的至少一个语法审核项目确定sql语句对应的审核扣分项目和/或审核得分项目。
108.本实施例中,语法审核策略至少包括一个语法审核项目,其中,语法审核项目包括字段类型,索引列、联合体数量、联合体对应的关联表数量、字段数量、过滤条件中的一个项目或多个项目,根据至少一个语法审核项目确定sql语句对应的审核扣分项目和/或审核得分项目。
109.可选地,根据语法审核策略中的至少一个语法审核项目确定sql语句对应的审核扣分项目和/或审核得分项目,具体包括以下步骤:
110.判断sql语句对应的字段类型是否与预设字段类型相同,若否,则确定字段类型为审核得分项目,若是,则确定字段类型为审核扣分项目;
111.和/或判断sql语句对应的索引列是否存在对应的预设函数,若是,则确定索引列为审核得分项目,若否,则确定索引列为审核扣分项目;
112.和/或判断sql语句对应的联合体数量是否超过预设联合体数量,若是,则确定联合体数量为审核得分项目,若否,则确定联合体数量为审核扣分项目;
113.和/或判断sql语句对应的联合体对应的关联表数量是否超过预设关联表数量,若是,则确定联合体对应的关联表数量为审核得分项目,若否,则确定联合体对应的关联表数量为审核扣分项目;
114.和/或判断sql语句查询的字段数量是否为预设字段数量,若是,则确定字段数量为审核得分项目,若否,则确定字段数量为审核扣分项目;
115.和/或判断sql语句对应的过滤条件是否为预设过滤条件,若是,则确定为审核得分项目,若否,则确定过滤条件为审核扣分项目。
116.其中,预设字段类型、预设函数、预设联合体数量、联合体对应的关联表以及字段数量根据实际情况设定。
117.步骤1021b,根据审核扣分项目和/或审核得分项目确定语法审核分值。
118.本实施例中,审核扣分项目不得分,审核扣分项目对应的审核分值为零,审核得分项目得分,审核得分项目对应的审核分值是预先设置的,将审核扣分项目和/或审核得分项目作为语法审核分值。例如,字段类型对应的审核分值为1分,索引列对应的审核分值为2分、联合体数量对应的审核分值为1分、联合体对应的关联表数量对应的审核分值为0.5分、字段数量对应的审核分值为0.2分、过滤条件对应的审核分值为1分。
119.需要说明的是,各项目对应的审核分值不限于上述数值,还可以是其他适合的数值,根据各项目在语法审核策略中的占比设定对应的审核分值。审核项目根据实际需要设定,并不限于上述审核项目,还可是其他适合的审核项目。
120.步骤1021c,根据审核扣分项目和/或审核得分项目以及语法审核分值生成语法审核结果。
121.本实施例中,根据审核扣分项目和/或审核得分项目以及语法审核分值生成语法审核结果,语法审核结果是对sql语句语义或语法方面进行的评估,用户可查看语法审核结果得知各审核项目的具体情况。
122.实施例九
123.图9是本发明实施例九提供的sql语句优化方法的流程示意图,如图9所示,在本发明实施例七提供的sql语句优化方法的基础上,对步骤1021中根据执行计划策略对待审核的sql语句进行审核获得执行计划审核结果进行了进一步的细化,包括以下步骤:
124.1021d,根据执行计划审核策略中的至少一个执行计划审核项目确定sql语句对应的审核扣分项目和/或审核得分项目。
125.本实施例中,执行计划审核策略至少包括一个执行计划审核项目,其中,执行计划审核项目包括数据库、全表扫描、索引跳跃扫描、索引全扫描和笛卡尔积连接中的一个项目或多个项目,根据至少一个执行计划审核项目确定sql语句对应的审核扣分项目和/或审核得分项目。
126.可选地,根据执行计划审核策略中的至少一个执行计划审核项目确定sql语句对应的审核扣分项目和/或审核得分项目,具体包括以下步骤:
127.判断sql语句对应的执行计划对应的数据库是否与审核请求对应的数据库一致,若是,则确定数据库为审核得分项目,若否,则确定数据库为审核扣分项目;
128.和/或判断sql语句对应的执行计划是否存在全表扫描,若是,则确定全表扫描为审核得分项目,若否,则确定全表扫描为审核扣分项目;
129.和/或判断sql语句对应的执行计划是否存在索引跳跃扫描,获得对应的判断结果,若是,则确定索引跳跃扫描为审核得分项目,若否,则确定索引跳跃扫描为审核扣分项目;
130.和/或判断sql语句对应的执行计划是否存在索引全扫描,获得对应的判断结果,若是,则确定索引全扫描为审核得分项目,若否,则确定索引全扫描为审核扣分项目;
131.和/或判断sql语句对应的执行计划是否存在笛卡尔积连接,若是,则确定笛卡尔积连接为审核得分项目,若否,则确定笛卡尔积连接为审核扣分项目。
132.1021e,根据审核扣分项目和/或审核得分项目确定执行计划审核分值。
133.本实施例中,审核扣分项目不得分,审核扣分项目对应的审核分值为零,审核得分项目得分,审核得分项目对应的审核分值是预先设置的,将审核扣分项目和/或审核得分项目作为执行计划审核分值。例如,数据库对应的审核分值为0.2分,全表扫描对应的审核分值为2分、索引跳跃扫描对应的审核分值为1分、索引全扫描对应的审核分值为2分、笛卡尔积连接对应的审核分值为1分。
134.需要说明的是,各项目对应的审核分值不限于上述数值,还可以是其他适合的数值,根据各项目在执行计划审核策略中的占比设定对应的审核分值。审核项目根据实际需要设定,并不限于上述审核项目,还可是其他适合的审核项目。
135.1021f,根据审核扣分项目和/或审核得分项目以及执行计划审核分值生成执行计划审核结果。
136.本实施例中,根据审核扣分项目和/或审核得分项目以及执行计划审核分值生成执行计划审核结果,执行计划审核结果是对sql语句执行方面进行的评估,用户可查看行计划审核结果得知各审核项目的具体情况。
137.图10是本发明一实施例提sql语句优化装置200的结构示意图,如图10所示,本实施例提供的sql语句优化装置200包括请求接收单元201,审核单元202,确定单元203,优化单元204。
138.其中,请求接收单元201,用于接收sql语句审核请求,根据sql语句审核请求获取待审核的sql语句。审核单元202,用于采用预设的sql审核策略对待审核的sql语句进行审核获得对应的审核结果。确定单元203,用于根据审核结果确定是否对sql语句进行优化。优化单元204,用于若是,则根据审核结果对应的审核扣分项目对sql语句进行优化。
139.可选地,确定单元203,还用于获取审核结果对应的审核分值,确定审核分值是否等于预设分值;若是,则确定无需对sql语句进行优化;若否,则确定对sql语句进行优化。
140.可选地,优化单元204,还用于根据审核扣分项目确定匹配的优化策略;采用匹配的优化策略对sql语句进行优化,以获得优化的sql语句。
141.可选地,优化单元204,还用于获取预设的审核扣分项目与优化策略的映射关系;根据审核扣分项目、预设的审核扣分项目与优化策略的映射关系确定匹配的优化策略。
142.可选地,优化单元204,还用于采用匹配的优化策略对sql语句进行调整获得调整后的sql语句,并采用sql审核策略对调整后的sql语句进行审核获得对应的审核结果;根据审核结果确定是否对调整后的sql语句进行优化;若否,则将调整后的sql语句确定为优化的sql语句。
143.可选地,优化单元204,还用于若是,则将审核结果发送至用户终端,以供用户终端根据审核结果反馈优化策略;采用用户终端反馈的优化策略对调整后的sql语句进行优化,以获得优化的sql语句。
144.可选地,sql语句优化装置200还包括:更新单元。
145.其中,更新单元,用于将用户终端反馈的优化策略添加至对应的优化策略中,以更新对应的优化策略。
146.可选地,审核单元202,还用于根据语法审核策略对待审核的sql语句进行审核获得语法审核结果,并根据执行计划策略对待审核的sql语句进行审核获得执行计划审核结果;根据语法审核结果和执行计划审核结果生成对应的审核结果。
147.可选地,审核单元202,还用于根据语法审核策略中的至少一个语法审核项目确定sql语句对应的审核扣分项目和/或审核得分项目;根据审核扣分项目和/或审核得分项目确定语法审核分值;根据审核扣分项目和/或审核得分项目以及语法审核分值生成语法审核结果。
148.可选地,审核单元202,还用于根据执行计划审核策略中的至少一个执行计划审核项目确定sql语句对应的审核扣分项目和/或审核得分项目;根据审核扣分项目和/或审核得分项目确定执行计划审核分值;根据审核扣分项目和/或审核得分项目以及执行计划审核分值生成执行计划审核结果。
149.图11是用来实现本发明实施例的sql语句优化方法的电子设备的第一框图,如图11所示,该电子设备300包括:存储器301,处理器302。
150.存储器301存储计算机执行指令;
151.处理器执行302存储器存储的计算机执行指令,使得处理器执行上述任意一个实施例提供的方法。
152.图12是用来实现本发明实施例的sql语句优化方法的电子设备的第二框图,如图12所示,该电子设备可以是计算机,数字广播终端,消息收发设备,平板设备,个人数字助理,服务器,服务器集群等。
153.电子设备400可以包括以下一个或多个组件:处理组件402,存储器404,电源组件406,输入/输出(i/o)接口408,传感器组件410,以及通信组件412。
154.处理组件402通常控制电子设备400的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件402可以包括一个或多个通信组件414来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件402可以包括一个或多个模块,便于处理组件402和其他组件之间的交互。
155.存储器404被配置为存储各种类型的数据以支持在电子设备400的操作。这些数据的示例包括用于在电子设备400上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器404可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。
156.电源组件406为电子设备400的各种组件提供电力。电源组件406可以包括电源管理系统,一个或多个电源,及其他与为电子设备400生成、管理和分配电力相关联的组件。
157.i/o接口408为处理组件402和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
158.传感器组件410包括一个或多个传感器,用于为电子设备400提供各个方面的状态评估。例如,传感器组件410可以检测到电子设备400的打开/关闭状态,组件的相对定位,例如组件为电子设备400的显示器和小键盘,传感器组件410还可以检测电子设备400或电子设备400一个组件的位置改变,用户与电子设备400接触的存在或不存在,电子设备400方位或加速/减速和电子设备400的温度变化。传感器组件410可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件410还可以包括光传感器,如cmos或ccd图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件410还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
159.通信组件412被配置为便于电子设备400和其他设备之间有线或无线方式的通信。电子设备400可以接入基于通信标准的无线网络,如wifi,2g或3g,或它们的组合。在一个示例性实施例中,通信组件412经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,通信组件412还包括近场通信(nfc)模块,以促进短程通信。例如,在nfc模块可基于射频识别(rfid)技术,红外数据协会(irda)技术,超宽带(uwb)技术,蓝牙(bt)技术和其他技术来实现。
160.在示例性实施例中,电子设备400可以被一个或多个应用专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列
(fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
161.在示例性实施例中,还提供了一种包括指令的计算机可读存储介质,例如包括指令的存储器404,上述指令可由电子设备400的通信组件414执行以完成上述方法。例如,计算机可读存储介质可以是rom、随机存取存储器(ram)、cd

rom、磁带、软盘和光数据存储设备等。
162.在示例性实施例中,还提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行上述任意一个实施例中的方法。
163.在示例性实施例中,还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行上述任意一个实施例中的方法。
164.本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求书指出。
165.应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求书来限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1