[发明专利]半连接查询方法、装置、服务器及存储介质有效
申请号: | 201910079781.0 | 申请日: | 2019-01-28 |
公开(公告)号: | CN109753520B | 公开(公告)日: | 2021-01-26 |
发明(设计)人: | 张钦;朱仲颖 | 申请(专利权)人: | 上海达梦数据库有限公司 |
主分类号: | G06F16/2455 | 分类号: | G06F16/2455 |
代理公司: | 北京品源专利代理有限公司 11332 | 代理人: | 孟金喆 |
地址: | 201203 上海*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 连接 查询 方法 装置 服务器 存储 介质 | ||
本发明公开了一种半连接查询方法、装置、服务器及存储介质。该方法包括:解析半连接查询语句,生成右节点的连接对应的执行计划树,半连接查询语句用于查询半连接的左节点和右节点,如果左节点与右节点的半连接方式为预设方式且对右节点的查询形式为预设形式,则根据执行计划树中内连接的叶子节点和连接条件,确定独立叶子节点集合和独立叶子节点集合对应的连接条件,根据独立叶子节点集合和独立叶子节点集合对应的连接条件查询半连接的左节点和右节点,得到查询结果。上述技术方案,通过确定独立叶子节点集合,在右节点的独立叶子节点集合中查找与左节点的匹配记录,无需对右节点进行计算,提高了半连接的查询效率。
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种半连接查询方法、装置、服务器及存储介质。
背景技术
半连接是数据库连接的一种,如数据表A与数据表B进行半连接,当数据表A中的一条记录在数据表B中找到匹配记录时,返回数据表A的记录,不返回数据表B的记录,即使在数据表B中找到多条匹配记录,也只返回数据表A中该条记录一次,其中,数据表A称为半连接的左节点,数据表B称为半连接的右节点。半连接在结构化查询语言(Structured QueryLanguage,SQL)中通常使用关键字IN或EXISTS作为连接条件,如SQL语句SELECT A.C1,A.C2FROM A WHERE A.C1IN(SELECT B.D1FROM B)就是一个半连接。
半连接的右节点不仅可以是一张表,还可以是一个连接,如SQL语句SELECT A.C1,A.C2FROM A WHERE A.C1IN(SELECT B.D1FROM B,C WEHRE B.D2=C.E1)是一个右节点为连接的半连接,其中,右节点为数据表B与数据表C的连接结果。对于这种情况,现有技术采用的处理方法为:先进行右节点的连接计算,再与左节点进行半连接。
当右节点的连接数量很多,先计算右节点,再在右节点的计算结果中查找与左节点的匹配记录,计算量非常大,查询的效率非常低。另外,如果对于右节点中连接的计算本身就非常复杂,那么计算过程也是查询的瓶颈。
发明内容
本发明实施例提供一种半连接查询方法、装置、服务器及存储介质,提高半连接的查询效率。
第一方面,本发明实施例提供一种半连接查询方法,包括:
解析半连接查询语句,生成右节点的连接对应的执行计划树,所述半连接查询语句用于查询半连接的左节点和右节点;
如果所述左节点与右节点的半连接方式为预设方式且对所述右节点的查询形式为预设形式,则根据所述执行计划树中内连接的叶子节点和连接条件,确定独立叶子节点集合和所述独立叶子节点集合对应的连接条件;
根据所述独立叶子节点集合和所述独立叶子节点集合对应的连接条件查询半连接的左节点和右节点,得到查询结果。
进一步的,所述根据所述执行计划树中内连接的叶子节点和连接条件,确定独立叶子节点集合和所述独立叶子节点集合对应的连接条件,包括:
遍历所述执行计划树,获取所述执行计划树中内连接的叶子节点和连接条件;
不同连接条件的叶子节点之间有重合的叶子节点,则将该不同连接条件的全部叶子节点存储至对应的独立叶子节点集合中,该不同连接条件为该独立叶子节点集合对应的连接条件;
单个连接条件与其他连接条件的叶子节点之间无重合的叶子节点,则将该单个连接条件的全部叶子节点存储至对应的独立叶子节点集合中,该单个连接条件为该独立叶子节点集合对应的连接条件。
进一步的,所述独立叶子节点集合还满足如下条件:
同一独立叶子节点集合中的叶子节点彼此关联,不同独立叶子节点集合中的叶子节点彼此无关。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海达梦数据库有限公司,未经上海达梦数据库有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910079781.0/2.html,转载请声明来源钻瓜专利网。