[发明专利]远程数据库对象的优化方法、装置、设备及存储介质有效
申请号: | 201911250798.4 | 申请日: | 2019-12-09 |
公开(公告)号: | CN111046066B | 公开(公告)日: | 2023-05-12 |
发明(设计)人: | 望声宜;朱仲颖;韩朱忠 | 申请(专利权)人: | 上海达梦数据库有限公司 |
主分类号: | G06F16/2453 | 分类号: | G06F16/2453 |
代理公司: | 北京品源专利代理有限公司 11332 | 代理人: | 孟金喆 |
地址: | 201203 上海*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 远程 数据库 对象 优化 方法 装置 设备 存储 介质 | ||
1.一种远程数据库对象的优化方法,其特征在于,包括:
遍历检查目标结构化查询语言SQL语句所对应初始执行计划的所有计划节点,将符合优化条件的计划节点确定为目标计划节点;
针对每个计划节点,在确定所述计划节点为所述目标计划节点时,改写执行所述目标计划节点时发送至远程数据库节点的初始SQL语句,得到所述初始SQL语句的优化SQL语句;
将所述目标计划节点对应的连接计划节点修改为嵌套循环计划节点,并基于所述连接计划节点的右子计划节点,结合所述优化SQL语句,得到所述嵌套循环计划节点的右子计划节点;
将修改后包含各所述嵌套循环计划节点及对应右子计划节点的执行计划确定为目标SQL语句的目标执行计划,并执行所述目标执行计划,以优化所述远程数据库节点的网络数据传输量;
所述改写执行所述目标计划节点时发送至远程数据库节点的初始SQL语句,得到所述初始SQL语句的优化SQL语句,包括:
从所述目标SQL语句中获取与所述目标计划节点对应的连接条件,并将所述连接条件确定为第一布尔表达式,所述第一布尔表达式包含本地连接列;
将所述第一布尔表达式转换为以一个元组变量表示所述本地连接列中任一元组值的第二布尔表达式,并生成包含所述元组变量与所述本地连接列中各所述元组值的映射关系链表;
将所述第二布尔表达式作为过滤条件并与执行所述目标计划节点时发送至远程数据库节点的初始SQL语句相结合,得到所述初始SQL语句的优化SQL语句;
所述执行所述目标执行计划,以优化所述远程数据库节点的网络数据传输量,包括:
针对所述目标执行计划中的每个嵌套循环计划节点,通过循环执行所述嵌套循环计划节点的左子计划节点,依次从对应映射关系链表中取出对应本地连接列的元组值赋值给对应元组变量;
在每次对相应元组变量赋值后,执行所述嵌套循环计划节点的右子计划节点,将被赋值的元组变量所对应的优化SQL语句发送至所述远程数据库节点,以使所述远程数据库节点执行所述优化SQL语句;
接收所述远程数据库节点执行各所述优化SQL语句后返回的远程数据,以优化所述远程数据库节点的网络数据传输量。
2.根据权利要求1所述的方法,其特征在于,所述遍历检查目标SQL语句所对应初始执行计划的所有计划节点,将符合优化条件的计划节点确定为目标计划节点,包括:
将目标SQL语句所对应初始执行计划的首个计划节点确定为当前计划节点,并对所述当前计划节点进行检查;
若所述当前计划节点包含远程数据库对象,且所述远程数据库对象为内连接查询的左边或右边对象、左外连接查询的右边对象,或者右外连接查询的左边对象,则将所述当前计划节点确定为目标计划节点;
将所述当前计划节点的下一个计划节点作为新的当前计划节点,并返回执行对所述当前计划节点的检查操作,直至遍历所述初始执行计划的所有计划节点。
3.根据权利要求2所述的方法,其特征在于,所述将所述目标计划节点对应的连接计划节点修改为嵌套循环计划节点,并基于所述连接计划节点的右子计划节点,结合所述优化SQL语句,得到所述嵌套循环计划节点的右子计划节点,包括:
基于所述目标计划节点关联的远程数据库对象和本地数据库对象,确定所述初始执行计划中用于执行所述远程数据库对象与本地数据库对象间连接操作的连接计划节点;
将所述连接计划节点确定为所述目标计划节点对应的连接计划节点,并将所述连接计划节点修改为嵌套循环计划节点;
在所述连接计划节点的右子计划节点中增加与所述优化SQL语句中第二布尔表达式相对应的计划连接条件,得到所述右子计划节点对应的修改右子计划节点;
将所述修改右子计划节点确定为所述嵌套循环计划节点的右子计划节点。
4.根据权利要求3所述的方法,其特征在于,所述基于所述目标计划节点关联的远程数据库对象和本地数据库对象,确定所述初始执行计划中用于执行所述远程数据库对象与本地数据库对象间连接操作的连接计划节点,包括:
确定所述第一布尔表达式中包含的远程数据库对象和本地数据库对象,并将所述远程数据库对象和本地数据库对象确定为所述目标计划节点关联的远程数据库对象和本地数据库对象;
从所述初始执行计划中确定用于执行所述远程数据库对象与本地数据库对象间连接操作的连接计划节点。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海达梦数据库有限公司,未经上海达梦数据库有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911250798.4/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种霍山石斛干花的制备方法
- 下一篇:一种SBD器件及其制备方法