数据库操作指令的执行计划演进方法、装置以及设备制造方法及图纸

技术编号:19320537 阅读:14 留言:0更新日期:2018-11-03 10:58
本说明书实施例公开了数据库操作指令的执行计划演进方法、装置以及设备。方案包括:接收数据库操作指令;针对数据库操作指令,若生成新执行计划,则获取其他的已有执行计划;对新执行计划和其他的已有执行计划进行分组,得到第一分组和第二分组,第一分组中为已验证通过的执行计划,第二分组中为已验证通过的执行计划和待验证的执行计划;获取匹配于数据库操作指令的流量,并按照设定的流量划分比例划分给第一分组和第二分组,以按照分组内预估的最优执行计划处理流量;根据流量处理时待验证的执行计划的实际性能表现,调整流量划分比例,并根据流量划分比例的变化情况,判定待验证的执行计划是否通过验证。

Database operation instruction execution plan evolution method, device and equipment

The embodiment of this specification discloses an execution plan evolution method, device and device for database operation instructions. The scheme includes: receiving database operation instructions; generating new execution plans for database operation instructions, acquiring other existing execution plans; grouping new execution plans and other existing execution plans, getting the first group and the second group, the first group is validated execution plans, and the second group is validated execution plans. Groups are validated execution plans and execution plans to be validated; traffic matching database operation instructions is obtained and divided into the first group and the second group according to the set flow partition ratio to process traffic according to the optimal execution plan predicted within the group; and execution plans to be validated according to the flow processing time. The actual performance of the plan, adjust the proportion of traffic partition, and according to the change of the proportion of traffic partition, determine whether the execution plan to be verified has passed.

【技术实现步骤摘要】
数据库操作指令的执行计划演进方法、装置以及设备
本说明书涉及计算机软件
,尤其涉及数据库操作指令的执行计划演进方法、装置以及设备。
技术介绍
常见的关系型数据库系统通过结构化查询语言(StructuredQueryLanguage,SQL)对外提供数据访问服务,当数据库接收到用户的SQL指令时,需要根据该SQL指令制定出如何达到用户目的一个执行过程,这个过程通常被称为执行计划。一个SQL指令一般可以有多种不同的执行计划都可以达到目的,为了尽可能高效地完成用户的请求,数据库内核一般通过多种手段,选择一个尽可能优的执行计划用以执行对应的SQL指令,这个过程一般被称为执行计划优化,该部分工作由数据库系统的优化器完成。在实际生产系统中,对于同一个SQL指令,优化器在选择的最优执行计划可能会因为不同原因发生变化,可能发生变化的场景比如有系统升级、统计信息重新收集、优化器相关系统参数变更等,而变化的执行计划在性能上可能会出现回退现象,针对这种问题,在现有技术中往往将执行计划通过一些方案固定下来,避免执行计划因上述种种因素而产生变化。基于现有技术,需要有效的数据库操作指令的执行计划演进方案。
技术实现思路
本说明书实施例提供数据库操作指令的执行计划演进方法、装置以及设备,用以解决如下技术问题:需要有效的数据库操作指令的执行计划演进方案。为解决上述技术问题,本说明书实施例是这样实现的:本说明书实施例提供的一种数据库操作指令的执行计划演进方法,包括:接收数据库操作指令;针对所述数据库操作指令,若生成新执行计划,则获取其他的已有执行计划;对所述新执行计划和所述其他的已有执行计划进行分组,得到第一分组和第二分组,第一分组中为已验证通过的执行计划,第二分组中为已验证通过的执行计划和待验证的执行计划;获取匹配于所述数据库操作指令的流量,并按照设定的流量划分比例划分给所述第一分组和所述第二分组,以按照分组内预估的最优执行计划处理流量;根据流量处理时所述待验证的执行计划的实际性能表现,调整所述流量划分比例,并根据所述流量划分比例的变化情况,判定所述待验证的执行计划是否通过验证。本说明书实施例提供的另一种数据库操作指令的执行计划演进方法,包括:获取数据库操作指令对应的各已有执行计划;对所述各已有执行计划进行分组,得到第一分组和第二分组,第一分组中为已验证通过的执行计划,第二分组中为已验证通过的执行计划和待验证的执行计划;获取匹配于所述数据库操作指令的流量,并按照设定的流量划分比例划分给所述第一分组和所述第二分组,以按照分组内预估的最优执行计划处理流量;根据流量处理时所述待验证的执行计划的实际性能表现,调整所述流量划分比例,并根据所述流量划分比例的变化情况,判定所述待验证的执行计划是否通过验证。本说明书实施例提供的一种数据库操作指令的执行计划演进装置,包括:接收模块,接收数据库操作指令;获取模块,针对所述数据库操作指令,若生成新执行计划,则获取其他的已有执行计划;分组模块,对所述新执行计划和所述其他的已有执行计划进行分组,得到第一分组和第二分组,第一分组中为已验证通过的执行计划,第二分组中为已验证通过的执行计划和待验证的执行计划;划分模块,获取匹配于所述数据库操作指令的流量,并按照设定的流量划分比例划分给所述第一分组和所述第二分组,以按照分组内预估的最优执行计划处理流量;验证模块,根据流量处理时所述待验证的执行计划的实际性能表现,调整所述流量划分比例,并根据所述流量划分比例的变化情况,判定所述待验证的执行计划是否通过验证。本说明书实施例提供的另一种数据库操作指令的执行计划演进装置,包括:获取模块,获取数据库操作指令对应的各已有执行计划;分组模块,对所述各已有执行计划进行分组,得到第一分组和第二分组,第一分组中为已验证通过的执行计划,第二分组中为已验证通过的执行计划和待验证的执行计划;划分模块,获取匹配于所述数据库操作指令的流量,并按照设定的流量划分比例划分给所述第一分组和所述第二分组,以按照分组内预估的最优执行计划处理流量;验证模块,根据流量处理时所述待验证的执行计划的实际性能表现,调整所述流量划分比例,并根据所述流量划分比例的变化情况,判定所述待验证的执行计划是否通过验证。本说明书实施例提供的一种数据库操作指令的执行计划演进设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:接收数据库操作指令;针对所述数据库操作指令,若生成新执行计划,则获取其他的已有执行计划;对所述新执行计划和所述其他的已有执行计划进行分组,得到第一分组和第二分组,第一分组中为已验证通过的执行计划,第二分组中为已验证通过的执行计划和待验证的执行计划;获取匹配于所述数据库操作指令的流量,并按照设定的流量划分比例划分给所述第一分组和所述第二分组,以按照分组内预估的最优执行计划处理流量;根据流量处理时所述待验证的执行计划的实际性能表现,调整所述流量划分比例,并根据所述流量划分比例的变化情况,判定所述待验证的执行计划是否通过验证。本说明书实施例提供的另一种数据库操作指令的执行计划演进设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够:获取数据库操作指令对应的各已有执行计划;对所述各已有执行计划进行分组,得到第一分组和第二分组,第一分组中为已验证通过的执行计划,第二分组中为已验证通过的执行计划和待验证的执行计划;获取匹配于所述数据库操作指令的流量,并按照设定的流量划分比例划分给所述第一分组和所述第二分组,以按照分组内预估的最优执行计划处理流量;根据流量处理时所述待验证的执行计划的实际性能表现,调整所述流量划分比例,并根据所述流量划分比例的变化情况,判定所述待验证的执行计划是否通过验证。本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:能够以新执行计划的生成及时触发执行计划的演进,能够使用用户的实际业务流量进行演进,而无需占用额外的资源模拟用户诸如查询等数据库操作进行演进,能够以灰度切流方式进行演进,有助于保证用户业务的稳定性和可靠性,因此,这种数据库操作指令的执行计划演进方案比较有效。附图说明为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本说明书实施例提供的一种数据库操作指令的执行计划演进方法的流程示意图;图2a~图2d为本说明书实施例提供的一种实际应用场景下,上述数据库操作指令的执行计划演进方法的一种具体实施方案的示意图;图3为本说明书实施例提供的另一种数据库操作指令的执行计划演进方法的流程示意图;图4为本说明书实施例提供的对应于图1的一种数据库操作指令的执行计划演进装置的结构示意图;图5为本说明书实施例提供的对应于图3的一种数据库操作指令的执行计划本文档来自技高网...

【技术保护点】
1.一种数据库操作指令的执行计划演进方法,包括:接收数据库操作指令;针对所述数据库操作指令,若生成新执行计划,则获取其他的已有执行计划;对所述新执行计划和所述其他的已有执行计划进行分组,得到第一分组和第二分组,第一分组中为已验证通过的执行计划,第二分组中为已验证通过的执行计划和待验证的执行计划;获取匹配于所述数据库操作指令的流量,并按照设定的流量划分比例划分给所述第一分组和所述第二分组,以按照分组内预估的最优执行计划处理流量;根据流量处理时所述待验证的执行计划的实际性能表现,调整所述流量划分比例,并根据所述流量划分比例的变化情况,判定所述待验证的执行计划是否通过验证。

【技术特征摘要】
1.一种数据库操作指令的执行计划演进方法,包括:接收数据库操作指令;针对所述数据库操作指令,若生成新执行计划,则获取其他的已有执行计划;对所述新执行计划和所述其他的已有执行计划进行分组,得到第一分组和第二分组,第一分组中为已验证通过的执行计划,第二分组中为已验证通过的执行计划和待验证的执行计划;获取匹配于所述数据库操作指令的流量,并按照设定的流量划分比例划分给所述第一分组和所述第二分组,以按照分组内预估的最优执行计划处理流量;根据流量处理时所述待验证的执行计划的实际性能表现,调整所述流量划分比例,并根据所述流量划分比例的变化情况,判定所述待验证的执行计划是否通过验证。2.如权利要求1所述的方法,所述获取其他的已有执行计划,具体包括:获取预先为其他的已有执行计划生成的复现信息;根据所述复现信息,确定所述新执行计划未包含在所述其他的已有执行计划中;根据所述复现信息,生成所述其他的已有执行计划。3.如权利要求1所述的方法,所述数据库操作指令包括结构化查询语言SQL语句,所述获取匹配于所述数据库操作指令的流量,具体包括:确定所述数据库操作指令采用的SQL语句模板;获取采用该SQL语句模板的指定数量的数据库操作指令的流量。4.如权利要求1所述的方法,所述根据流量处理时所述待验证的执行计划的实际性能表现,调整所述流量划分比例,具体包括:若预估所述待验证的执行计划为最优执行计划,则记录所述待验证的执行计划处理流量时的实际性能表现,以及记录预估的所述第一分组中的最优执行计划处理流量时的实际性能表现;根据所记录的信息进行综合比较,通过所述综合比较,若判定所述待验证的执行计划的实际性能表现优于预估的所述第一分组中的最优执行计划的实际性能表现,则增加向所述第二分组划分流量的比例。5.如权利要求4所述的方法,所述根据所述流量划分比例的变化情况,判定所述待验证的执行计划是否通过验证,具体包括:若向所述第二分组划分流量的比例达到设定阈值,则判定所述待验证的执行计划通过验证,其中,所述设定比例的调整执行一次或者迭代执行多次。6.一种数据库操作指令的执行计划演进方法,包括:获取数据库操作指令对应的各已有执行计划;对所述各已有执行计划进行分组,得到第一分组和第二分组,第一分组中为已验证通过的执行计划,第二分组中为已验证通过的执行计划和待验证的执行计划;获取匹配于所述数据库操作指令的流量,并按照设定的流量划分比例划分给所述第一分组和所述第二分组,以按照分组内预估的最优执行计划处理流量;根据流量处理时所述待验证的执行计划的实际性能表现,调整所述流量划分比例,并根据所述流量划分比例的变化情况,判定所述待验证的执行计划是否通过验证。7.一种数据库操作指令的执行计划演进装置,包括:接收模块,接收数据库操作指令;获取模块,针对所述数据库操作指令,若生成新执行计划,则获取其他的已有执行计划;分组模块,对所述新执行计划和所述其他的已有执行计划进行分组,得到第一分组和第二分组,第一分组中为已验证通过的执行计划,第二分组中为已验证通过的执行计划和待验证的执行计划;划分模块,获取匹配于所述数据库操作指令的流量,并按照设定的流量划分比例划分给所述第一分组和所述第二分组,以按照分组内预估的最优执行计划处理流量;验证模块,根据流量处理时所述待验证的执行计划的实际性能表现,调整所述流量划分比例,并根据所述流量划分比例的变化情况,判定所述待验证的执行计划是否通过验证。8.如权利要求7所述的装置,所述获取模块获取其他的已有执行计划,具体包括:所述获取模块获取预先为其他的已有执行计划生成的复现信息;根据所述复现信息,确定所述新执行计划未包含在所述其...

【专利技术属性】
技术研发人员:肖意陈萌萌陈俊全
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1