[发明专利]在分布式数据库上手动指定执行计划的方法有效
申请号: | 202210888040.9 | 申请日: | 2022-07-27 |
公开(公告)号: | CN115062048B | 公开(公告)日: | 2022-10-28 |
发明(设计)人: | 杨永锋;倪涛;何枋玲;吴红霞;李清灶;高翔;周建国;李建衡 | 申请(专利权)人: | 北京易鲸捷信息技术有限公司 |
主分类号: | G06F16/242 | 分类号: | G06F16/242;G06F16/2453;G06F16/27;G06F16/28 |
代理公司: | 四川言己律师事务所 51349 | 代理人: | 罗韬 |
地址: | 100089 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 分布式 数据库 手动 指定 执行 计划 方法 | ||
1.一种在分布式数据库上手动指定执行计划的方法,其特征在于所述的方法包括如下步骤:
在手动优化功能开启后,通过人工干预的方式影响当前SQL的执行计划,直至产生当前SQL的最优执行计划,并写入当前会话的缓存;所述人工干预的方式包括在SQL中增加提示与伪造表上的统计信息;
将当前SQL的最优执行计划信息存储至分布式存储单元中,并将当前SQL的最优执行计划信息写入元数据表中,且更改当前SQL在元数据表中对应执行计划的状态,然后记录当前SQL的最优执行计划信息在分布式存储单元中的位置;
本节点与其它节点通信,使各个节点上的对应进程清空当前SQL在其自身节点中缓存的执行计划信息;
向分布式数据库系统中的各个服务进程发出通知,更新当前SQL的执行计划,此前已缓存的执行计划失效。
2.根据权利要求1所述的在分布式数据库上手动指定执行计划的方法,其特征在于:所述手动优化功能开启后,仅在当前会话中产生当前SQL的执行计划,直至获得当前SQL的最优执行计划。
3.根据权利要求1所述的在分布式数据库上手动指定执行计划的方法,其特征在于:所述方法将当前SQL的最优执行计划信息序列化后再写入所述分布式存储单元。
4.根据权利要求3所述的在分布式数据库上手动指定执行计划的方法,其特征在于所述方法还包括如下步骤:
在分布式数据库系统中正在执行的会话中,编译阶段首先判断当前SQL已缓存的执行计划是否失效;
如判断结果为否,则返回执行计划,继续编译流程;
如判断结果为是,清空当前SQL在本节点当前的执行回话中已缓存的执行计划信息,然后判断本节点的共享缓存里是否有当前SQL的最优执行计划的缓存信息;
如判断结果为是,进行反序列化后将当前SQL的最优执行计划信息写入当前执行会话的缓存中,再返回执行计划,继续编译流程;
如判断结果为否,通过所述元数据表判断当前SQL是否在所述分布式存储单元中具有最优执行计划信息;
如判断结果为是,将当前SQL的最优执行计划信息写入本节点的共享缓存内,然后进行反序列化后写入当前执行会话的缓存中,再则返回执行计划,继续编译流程;
如判断结果为否,由优化器自动生成当前SQL的执行计划,并将当前SQL的执行计划信息写入本节点与当前执行会话的缓存中,然后将当前SQL的执行计划序列化后再写入所述分布式存储单元,并将当前SQL的执行计划信息写入元数据表中。
5.根据权利要求4所述的在分布式数据库上手动指定执行计划的方法,其特征在于:所述方法中编译阶段判断当前SQL已缓存的执行计划是否失效时,如判断结果为否,则进一步判断当前执行会话的缓存中是否有当前SQL的最优执行计划的缓存信息;
如判断结果为是,则返回执行计划,继续编译流程;
如判断结果为否,则继续判断本节点的共享缓存里是否有当前SQL的最优执行计划的缓存信息。
6.根据权利要求1或4所述的在分布式数据库上手动指定执行计划的方法,其特征在于:所述方法根据cacheKey清空会话或节点中缓存的SQL执行计划信息。
7.根据权利要求6所述的在分布式数据库上手动指定执行计划的方法,其特征在于:所述方法在判断当前SQL已缓存的执行计划是否失效前,首先解析当前SQL,并校验SQL的有效性和执行权限,然后以此生成逻辑算子,并根据所述逻辑算子生成所述cacheKey。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京易鲸捷信息技术有限公司,未经北京易鲸捷信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210888040.9/1.html,转载请声明来源钻瓜专利网。