[发明专利]在分布式数据库上手动指定执行计划的方法有效
申请号: | 202210888040.9 | 申请日: | 2022-07-27 |
公开(公告)号: | CN115062048B | 公开(公告)日: | 2022-10-28 |
发明(设计)人: | 杨永锋;倪涛;何枋玲;吴红霞;李清灶;高翔;周建国;李建衡 | 申请(专利权)人: | 北京易鲸捷信息技术有限公司 |
主分类号: | G06F16/242 | 分类号: | G06F16/242;G06F16/2453;G06F16/27;G06F16/28 |
代理公司: | 四川言己律师事务所 51349 | 代理人: | 罗韬 |
地址: | 100089 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 分布式 数据库 手动 指定 执行 计划 方法 | ||
本发明公开了一种在分布式数据库上手动指定执行计划的方法,属一种分布式数据库的优化方法,在手动优化功能开启后,通过人工干预的方式影响当前SQL的执行计划,直至产生当前SQL的最优执行计划,并写入当前会话的缓存;将当前SQL的最优执行计划信息存储至分布式存储单元中,并将当前SQL的最优执行计划信息写入元数据表中。通过手动优化功能可在当前会话中对SQL的执行计划进行优化并生成最优执行计划,有效解决了SQL优化对系统运行的透明性,并且还解决了全局存储和本地缓存的同步和失效问题,有效提升了SQL编译的效率,使得某些不能自动生成最优执行计划的SQL,在应用无感知的情况下对SQL的执行计划进行调优。
技术领域
本发明涉及一种分布式数据库的优化方法,更具体的说,本发明主要涉及一种在分布式数据库上手动指定执行计划的方法。
背景技术
目前主流的数据库优化器可以分为两种,分别为基于规则的优化器(Rule-BasedOptimizer,简称为RBO)与基于成本的优化器(Cost-Based Optimizer,简称为CBO)。基于规则的优化器(RBO),是基于数据库内部预定的一些规则来对SQL进行优化,它对数据不敏感,只借助少量的信息来决定一个SQL语句的执行计划。基于成本的优化器(CBO),通过估算每个执行计划所需的成本,将每个执行计划所耗费的资源进行量化,最后选出成本最小的执行计划作为最优的执行计划。优化器在判断是否用这种方式时,主要参照的是表及索引的统计信息。目前主流数据库一般这两种优化器都会使用,先用RBO对SQL进行相应的变换,再依赖CBO,基于成本,生成最优的执行计划。而影响SQL执行计划的方式主要有两种技术方案,一是通过参数的调整来打开或关闭相关的优化功能;二是通过影响算子的成本来影响执行计划。
基于规则的优化和基于成本的优化都是尽最大可能的选取最优的执行计划,但是在生产环境中,还是会存在一部分SQL由于表结构创建不合理、统计信息不准确或者优化器本身的逻辑等等的原因导致没有命中最优的执行计划,从而导致SQL的执行效率比较低。对于这些SQL,如果数据库不能自动生成最优的执行计划,生产环境上只能通过手动影响执行计划的方式来临时解决该问题。而现有的两种技术方案在解决这类问题是也存在缺陷。
通过参数调整来开启或关闭某项优化功能使其生效的方式有两种,一种是在当前会话中立即生效,但是仅在当前会话中生效,不能影响到其他的会话,这也就导致了参数的修改不能在已经连接的其他会话里生效;另外一种参数修改后需要重新启动数据库服务才能生效,这种修改通常会影响到业务的运行,因此只能在系统运维的窗口里才能做这些修改。另外,参数的修改会影响到当前会话里将要执行的所有SQL,因此这样的修改通常会有副作用,不建议在生产环境上使用。
通过影响算子的成本来影响执行计划的方式有几种,如,可以通过伪造表的统计信息,但是伪造表上的统计信息会影响到和该表关联的所有SQL;另外,可以通过修改表结构或增加索引来影响执行计划,但是修改表结构会影响到正在运行的业务,需要专门的维护窗口,如果数据库本身不支持在线增加索引,增加索引的过程中也会影响运行中的业务,并且增加索引会对插入和更新的效率产生影响。数据库通常还提供另外一种方式:提示(Hint),通过在SQL里增加提示来影响优化器可以改变SQL的执行计划,但是通常通过增加提示的方式只能影响到当前的SQL,这在系统上线的前期用来优化帮助优化SQL是有帮助的,但是系统上线运行后,应用中的SQL已经固定,通过增加提示来改变执行计划的方式不再可行。
发明内容
本发明的目的之一在于针对上述不足,提供一种在分布式数据库上手动指定执行计划的方法,以期望解决现有技术中SQL编译由于生产环境中一部分SQL优化器不能直接命中其最优执行计划,需要人工干预,且不能进行分布式数据库系统的全局存储和本地缓存的同步、失效等技术问题。
为解决上述的技术问题,本发明采用以下技术方案。
本发明所提供的一种在分布式数据库上手动指定执行计划的方法,所述方法包括如下步骤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京易鲸捷信息技术有限公司,未经北京易鲸捷信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210888040.9/2.html,转载请声明来源钻瓜专利网。