[发明专利]一种查询语句优化方法、装置、设备和存储介质在审
| 申请号: | 202110124950.5 | 申请日: | 2021-01-29 |
| 公开(公告)号: | CN112732752A | 公开(公告)日: | 2021-04-30 |
| 发明(设计)人: | 张钦;孟正凌;韩朱忠 | 申请(专利权)人: | 上海达梦数据库有限公司 |
| 主分类号: | G06F16/2453 | 分类号: | G06F16/2453;G06F16/2455;G06F16/242 |
| 代理公司: | 北京品源专利代理有限公司 11332 | 代理人: | 孟金喆 |
| 地址: | 201203 上海*** | 国省代码: | 上海;31 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 查询 语句 优化 方法 装置 设备 存储 介质 | ||
本发明公开了一种查询语句优化方法、装置、设备和存储介质,其特征在于,包括:获取查询语句;如果所述查询语句满足优化条件,则根据所述查询语句所包含的子句,确定所述查询语句的优化方式,其中,所述子句包括引用表和被引用表,所述引用表引用所述被引用表的列作为所述引用表的外键;基于所述优化方式,对所述查询语句进行优化。上述技术方案,在获取到查询语言之后,如果查询语句满足优化条件,则根据其包含的子句,确定优化方式,进而根据对应的优化方式,对查询语句进行优化,优化后的查询语句可以提升查询语句的执行效率。
技术领域
本发明实施例涉及数据库查询技术,尤其涉及一种查询语句优化方法、装置、设备和存储介质。
背景技术
如今,数据库已成为一个成熟软件系统中不可或缺的必要组成部分,而对数据库的查询操作,则是数据库系统中最简单最常用的操作。但是随着企业业务复杂度的不断提高,数据库的查询操作也变得越来越复杂,这就需要编写更加复杂的数据库查询语句,即查询语句,来访问数据库。
现有技术中,对于用户输入的查询语句,数据库管理系统先对其进行语法和语义解析,然后根据查询语句涉及的表的统计信息选择最优的执行计划,最后按照这个执行计划执行得到结果。
但是,当查询语句中包含多表连接查询操作时,经常存在一些表只参与连接,但若消除该表也并不影响最终的查询结果,这样的表我们称之为冗余表。冗余表的存在徒增了参与连接的表的数量,随着参与连接的表的数量的增加,优化器生成执行计划时需要考虑的情况就更多,连接生成的中间结果集也更庞大,势必影响查询的执行效率。所以,亟需一种查询语句优化方法,能够有效提升查询语句的执行效率。
发明内容
本发明提供一种查询语句优化方法、装置、设备和存储介质,以提升查询语句的执行效率。
第一方面,本发明实施例提供了一种查询语句优化方法,包括:
获取查询语句;
如果所述查询语句满足优化条件,则根据所述查询语句所包含的子句,确定所述查询语句的优化方式,其中,所述子句包括引用表和被引用表,所述引用表引用所述被引用表的列作为所述引用表的外键;
基于所述优化方式,对所述查询语句进行优化。
进一步地,所述优化条件包括第一优化条件,所述第一优化条件为所述查询语句包含where子句且where子句不包含or,
相应地,如果所述查询语句满足第一优化条件,根据所述查询语句所包含的子句,确定所述查询语句的优化方式,包括:
如果所述查询语句包含的where子句的条件表达式为exists子查询,且所述exists子查询满足第三优化条件,则确定所述优化方式为exists优化;
如果所述查询语句包含的where子句的条件表达式为in子查询,且所述in子查询满足第四优化条件,则确定所述优化方式为in优化。
进一步地,如果所述优化方式为exists优化,
相应地,基于所述优化方式,对所述查询语句进行优化,包括:
删除所述exists子查询中的第一两表等值连接条件;
将所述exists子查询中剩余的第一条件表达式添加至第一where子句中,并删除所述exists子查询;
在所述第一where子句中添加第一引用表的外键is not null的条件语句,完成对所述查询语句的优化。
进一步地,如果所述优化方式为in优化,
相应地,基于所述优化方式,对所述查询语句进行优化,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海达梦数据库有限公司,未经上海达梦数据库有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110124950.5/2.html,转载请声明来源钻瓜专利网。





