[发明专利]一种SQL语句优化方法、装置、设备及存储介质在审

专利信息
申请号: 202011301323.6 申请日: 2020-11-19
公开(公告)号: CN112286964A 公开(公告)日: 2021-01-29
发明(设计)人: 扈天阳;朱仲颖;韩朱忠 申请(专利权)人: 上海达梦数据库有限公司
主分类号: G06F16/2453 分类号: G06F16/2453
代理公司: 北京品源专利代理有限公司 11332 代理人: 孟金喆
地址: 201203 上海*** 国省代码: 上海;31
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 sql 语句 优化 方法 装置 设备 存储 介质
【说明书】:

发明公开了一种SQL语句优化方法、装置、设备及存储介质。该方法包括:获取用户输入的SQL查询语句;若所述SQL查询语句满足第一预设条件,则获取所述SQL查询语句中的可优化视图,其中,所述可优化视图包括公用表达式;根据所述可优化视图确定最终过滤条件;将所述最终过滤条件添加至目标视图中,以完成SQL语句优化。通过本发明的技术方案,能够对公用表达式增加过滤条件优化SQL语句,减小公用表达式的查询范围,从而减少中间结果集的查询规模,提升整条语句的查询执行效率。

技术领域

本发明实施例涉及数据库技术领域,尤其涉及一种SQL语句优化方法、装置、设备及存储介质。

背景技术

结构化查询语言(Structured Query Language,SQL),是一种数据库操作语言,用于存取数据以及查询、更新和管理关系数据库系统。

嵌套SQL语句如果层次过多,会使SQL语句难以阅读和维护。因此,会使用一个SQL语句定义一个公用表达式(CTE,COMMON TABLE EXPRESSION),该CTE在整个SQL查询中会被反复用到,这样可以提高SQL 语句的可维护性,同时CTE要比临时表的效率高很多。因此CTE查询是数据库中常见的一种查询。

通常,数据库会先对CTE中的数据进行收集,供之后的语句使用。由于要方便之后根据实际需求来使用,所以CTE的查询范围较大,致使CTE子句中处理的数据一般会比较多,这种传统实现方式的性能会非常低,并且之后语句使用CTE时,要筛选的数据较多,因此查询效率会更低。

发明内容

本发明实施例提供一种SQL语句优化方法、装置、设备及存储介质,以实现能够对公用表达式增加过滤条件优化SQL语句,减小公用表达式的查询范围,从而减少中间结果集的查询规模,提升整条语句的查询执行效率。

第一方面,本发明实施例提供了一种SQL语句优化方法,包括:

获取用户输入的SQL查询语句;

若所述SQL查询语句满足第一预设条件,则获取所述SQL查询语句中的可优化视图,其中,所述可优化视图包括公用表达式;

根据所述可优化视图确定最终过滤条件;

将所述最终过滤条件添加至目标视图中,以完成SQL语句优化。

进一步的,所述根据可优化视图确定最终过滤条件,包括:

若所述可优化视图中存在等值连接条件,且所述等值连接条件一侧为公用表达式,所述等值连接条件另一侧为单一对象,则根据所述单一对象确定第一过滤条件;

将所述等值连接条件和所述第一过滤条件确定IN表达式;

根据所述IN表达式确定最终过滤条件。

进一步的,所述根据IN表达式确定最终过滤条件,包括:

若所述可优化视图中存在第二过滤条件,则获取所述第二过滤条件,通过 AND连接所述IN表达式和所述第二过滤条件确定所述目标过滤条件;

若所述可优化视图中不存在所述第二过滤条件,则将所述IN表达式作为所述目标过滤条件;

将同一可优化视图对应的所述目标过滤条件用OR连接得到最终过滤条件。

进一步的,所述第一预设条件包括:

所述SQL查询语句包含公用表达式、SQL查询语句不支持集合查询且不支持外连接,和SQL查询语句中除with as语句外的其它语句的过滤条件中不包含子查询语句且不包含OR运算符。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海达梦数据库有限公司,未经上海达梦数据库有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202011301323.6/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top