[发明专利]一种opengauss中Nestloop连接执行方法在审
申请号: | 202310567030.X | 申请日: | 2023-05-19 |
公开(公告)号: | CN116628026A | 公开(公告)日: | 2023-08-22 |
发明(设计)人: | 陈健华;何小栋 | 申请(专利权)人: | 广州海量数据库技术有限公司 |
主分类号: | G06F16/2455 | 分类号: | G06F16/2455;G06F16/2453 |
代理公司: | 北京尚钺知识产权代理事务所(普通合伙) 11723 | 代理人: | 王海荣 |
地址: | 510510 广东省广州市天河区建*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 opengauss nestloop 连接 执行 方法 | ||
本发明涉及数据库技术领域,提供一种opengauss中Nestloop连接执行方法,本发明的方法包括:输入查询SQL语句,判断输入的查询SQL语句是否符合场景应用要求;根据输入的查询SQL语句生成Nestloop执行计划,为符合场景应用的查询SQL语句生成的Nestloop执行计划打上Inner Unique标记;执行生成的Nestloop执行计划。本发明通过在计划器阶段判断Nestloop执行计划是否满足应用场景的要求,为满足应用场景要求的Nestloop执行计划打上Inner Unique标记,可以在执行阶段显著减少Nestloop执行计划的循环执行次数,显著节省CPU资源,节省执行耗时,从而提高Nestloop算子的执行性能。通过判断查询SQL语句和Nestloop执行计划是否符合应用场景要求,实现了更为精确的条件是指,降低判断开销,减少性能劣化的发生。
技术领域
本发明涉及数据库技术领域,尤其涉及一种一种opengauss中Nestloop连接执行方法。
背景技术
连接(join)是数据库领域中一种常见的查询执行方法,用于两表或多表之间关联查询。在opengauss数据库中,常用的连接算子主要有Nestloop、merge join和Hash Join三种。在数据库的日常应用中,关联查询会被大量使用到,连接算子的执行速度对数据库的整体性能尤其是关联查询的效率具有重要的影响。
例如,Nestloop(嵌套循环)作为最基础的的一种连接执行算子,以下描述一种Nestloop的具体典型应用场景。当采用查询sql语句:Select*from table_a,table_bwhere table_a.key_a=table_b.key_b,在table_b上的key_b建立了唯一索引/主键索引,数据库会生成包含Nestloop算子的执行计划,下称Nestloop(test_a,test_b),其中test_a称为外表,test_b称为内表。假设test_a中有m条记录,test_b中有n条记录。Nestloop算子执行时需要获取test_a中的每一条元组a,到test_b中进行扫描,对于test_b中的每条记录b,用连接条件test_a.key_a=table_b.key_b进行判断,如果满足连接条件,返回此时的元组(a,b),将返回的元组(a,b)加入到结果集中,总的执行次数为m*n次。假如m、n较大,则乘积会较大,导致查询耗时较长。由于其嵌套循环的特性,其执行结果为内外表的笛卡尔积,极易形成性能瓶颈,显著增加查询耗时。
因此,如何提高关联查询的效率尤其是连接算子的执行速度,成为亟待解决的技术问题。
发明内容
有鉴于此,为了克服现有技术的不足,本发明旨在提供一种opengauss中Nestloop连接执行方法。
本发明提供一种opengauss中Nestloop连接执行方法,包括:
步骤S1:输入查询SQL语句,判断输入的查询SQL语句是否符合场景应用要求;
步骤S2:根据输入的查询SQL语句生成Nestloop执行计划,为符合场景应用的查询SQL语句生成的Nestloop执行计划打上Inner Unique标记;
步骤S3:执行步骤S2生成的Nestloop执行计划。
优选的,作为本发明的opengauss中Nestloop连接执行方法,步骤S1中,判断输入的查询SQL语句是否符合场景应用要求,包括:
判断查询SQL语句是否能生成Nestloop执行计划;
判断查询SQL语句中的连接条件是否符合场景应用要求;
判断查询SQL语句是否符合Inner Unique条件。
优选的,作为本发明的opengauss中Nestloop连接执行方法,步骤S1中,判断查询SQL语句是否能生成Nestloop执行计划,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广州海量数据库技术有限公司,未经广州海量数据库技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202310567030.X/2.html,转载请声明来源钻瓜专利网。