[发明专利]数据库查询语句的优化方法、存储介质与设备在审

专利信息
申请号: 202310153591.5 申请日: 2023-02-17
公开(公告)号: CN116204550A 公开(公告)日: 2023-06-02
发明(设计)人: 徐登峰;尹强 申请(专利权)人: 北京人大金仓信息技术股份有限公司
主分类号: G06F16/242 分类号: G06F16/242;G06F16/2453
代理公司: 北京智汇东方知识产权代理事务所(普通合伙) 11391 代理人: 刘长江
地址: 100102 北京市朝阳区容*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 数据库 查询 语句 优化 方法 存储 介质 设备
【说明书】:

发明提供了一种数据库查询语句的优化方法、存储介质与设备。其中上述方法包括:获取数据库查询语句的查询树;判断查询树中是否包含相关标量子查询;若是,则将相关标量子查询转换为等价的外连接查询。通过此方法,将数据库查询语句中相关标量子查询转换为等价的外连接查询,使得数据库优化器可以有更多的访问路径、连接方式、连接顺序的选择,最终提升性能。

技术领域

本发明涉及数据库技术,特别是涉及一种数据库查询语句的优化方法、存储介质与设备。

背景技术

在现有技术中,对于标量子查询的定义为子查询返回的是单一值的标量。一种数据库查询语句的具体示例如:

select stu.id,(select te.name from te where te.id=stu.tid)from stu;

其中,select te.name from te where te.id=stu.tid为标量子查询,但在此数据库查询语句的执行过程中,每读取一条stu表中的数据时,标量子查询便会执行一次,即标量子查询的执行次数取决于目标表中数据的数量,导致数据库执行效率低下。

发明内容

本发明的一个目的是提升数据库查询语句的执行效率。

本发明一个进一步的目的是消除数据库查询语句中的相关标量子查询。

本发明一个进一步的目的是将符合优化条件的数据库查询语句中的相关标量子查询转换为外连接。

特别地,本发明提供了一种数据库查询语句的优化方法,其包括:

获取数据库查询语句的查询树;

判断查询树中是否包含相关标量子查询;

若是,则将相关标量子查询转换为等价的外连接查询。

可选地,将相关标量子查询转换为等价的外连接查询的步骤包括:

将相关标量子查询的SELECT列表中的目标列添加到父查询语句的目标列中。

可选地,将所述相关标量子查询的SELECT列表中的目标列添加到父查询语句的目标列中的步骤之后包括:

将相关标量子查询移到父查询语句的From关键词之后。

可选地,将相关标量子查询移到父查询语句的From关键词之后的步骤之后包括:

判断相关标量子查询目标列中是否含有聚合操作。

可选地,判断相关标量子查询目标列中是否含有聚合操作的步骤之后包括:

若相关标量子查询目标列中含有聚合操作,则引入Group By操作。

可选地,引入Group By操作的步骤之后包括:

移除相关标量子查询;

引入外连接,并添加连接谓词。

可选地,判断相关标量子查询目标列中是否含有聚合操作的步骤之后包括:

若相关标量子查询目标列中不含有聚合操作,则移除相关标量子查询。

可选地,移除相关标量子查询的步骤之后包括:

引入外连接,并添加连接谓词。

根据本发明的另一个方面,还提供了一种机器可读存储介质,其上存储有机器可执行程序,机器可执行程序被处理器执行时实现上述任一种的数据库查询语句的优化方法。

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

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

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

×

专利文献下载

说明:

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

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

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

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

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

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

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

钻瓜专利网在线咨询

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

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