[发明专利]数据库查询语句的优化方法、存储介质与设备在审
申请号: | 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操作的步骤之后包括:
移除相关标量子查询;
引入外连接,并添加连接谓词。
可选地,判断相关标量子查询目标列中是否含有聚合操作的步骤之后包括:
若相关标量子查询目标列中不含有聚合操作,则移除相关标量子查询。
可选地,移除相关标量子查询的步骤之后包括:
引入外连接,并添加连接谓词。
根据本发明的另一个方面,还提供了一种机器可读存储介质,其上存储有机器可执行程序,机器可执行程序被处理器执行时实现上述任一种的数据库查询语句的优化方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京人大金仓信息技术股份有限公司,未经北京人大金仓信息技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202310153591.5/2.html,转载请声明来源钻瓜专利网。