一种信息生成方法、装置、电子设备、计算机可读存储介质及计算机程序产品与流程

摘要: 本技术涉及数据库技术,尤其涉及一种信息生成方法、装置、电子设备、计算机可读存储介质及计算机程序产品。背景技术:1、由于针对数据库,会存在重复使用相同的数据库语句...
一种信息生成方法、装置、电子设备、计算机可读存储介质及计算机程序产品与流程

本技术涉及数据库技术,尤其涉及一种信息生成方法、装置、电子设备、计算机可读存储介质及计算机程序产品。

背景技术:

1、由于针对数据库,会存在重复使用相同的数据库语句以进行操作的情况,为了减小计算数据库语句的执行计划所带来的开销,电子设备一般会将数据库语句的执行路径进行缓存,以针对相同的数据库语句直接从缓存中获取执行计划并使用,避免重复计算。然而,相关技术中,存在执行路径生成的效率低下和资源消耗较大的问题。

技术实现思路

1、本技术实施例提供一种信息生成方法、装置、电子设备、计算机可读存储介质及计算机程序产品,能够提升执行路径生成的效率,减少执行路径生成的资源消耗。

2、本技术实施例的技术方案是这样实现的:

3、本技术实施例提供一种信息生成方法,所述方法包括:

4、针对接收到的数据库语句,确定第一统计项,其中,所述第一统计项用于描述所述数据库语句所对应的数据表的数据分布;

5、基于所述第一统计项在历史时间的第一统计值,针对所述第一统计项确定最新的第二统计值;

6、基于所述第一统计项的所述第二统计值,确定所述数据库语句的第一执行路径,所述第一执行路径表征所述数据库语句在执行时所采用的操作步骤。

7、本技术实施例提供一种信息生成装置,包括:

8、统计项确定模块,用于针对接收到的数据库语句,确定第一统计项,其中,所述第一统计项用于描述所述数据库语句所对应的数据表的数据分布;

9、统计值确定模块,用于基于所述第一统计项在历史时间的第一统计值,针对所述第一统计项确定最新的第二统计值;

10、路径确定模块,用于基于所述第一统计项的所述第二统计值,确定所述数据库语句的第一执行路径,所述第一执行路径表征所述数据库语句在执行时所采用的操作步骤。

11、上述方案中,所述统计值确定模块,还用于利用所述历史时间的第一统计值,生成统计值序列,并确定所述统计值序列的序列类型;基于所述序列类型和所述统计值序列,确定所述第一统计项的所述第二统计值。

12、上述方案中,所述统计值确定模块,还用于将多个候选预测模型中与所述序列类型相匹配的候选预测模型,确定为目标预测模型;通过所述目标预测模型,基于所述统计值序列,确定所述第一统计项的所述第二统计值。

13、上述方案中,所述目标预测模型包括:多个子预测模型;所述统计值确定模块,还用于通过每个所述子预测模型,基于所述统计值序列,预测得到第三统计值;将与多个所述子预测模型对应的多个所述第三统计值融合,并将融合结果确定为所述第二统计值。

14、上述方案中,所述统计值确定模块,还用于基于所述目标预测模型的模型阶数,从所述统计值序列中,筛选多个预测输入,并基于所述目标预测模型的模型阶数,确定多个随机误差;通过所述目标预测模型,基于多个所述预测输入和多个随机误差,针对所述第一统计项进行统计值的预测,并将预测结果确定为所述第二统计值。

15、上述方案中,所述信息生成装置还包括:模型确定模块,用于基于所述序列类型的样本统计值序列,确定每个所述候选预测模型与所述序列类型的匹配程度;基于所述匹配程度,从多个所述候选预测模型中,确定与所述序列类型相匹配的候选预测模型。

16、上述方案中,所述模型确定模块,还用于从所述序列类型的样本统计值序列中,采样得到子样本序列,并将所述样本统计值序列中位于所述子样本序列之后的样本统计值,确定为真值结果;通过每个所述候选预测模型,针对所述子样本序列进行样本统计值的预测,得到每个所述候选预测模型的预测结果;利用所述真值结果和每个所述候选预测模型的所述预测结果之间的差异,确定每个所述候选预测模型与所述序列类型的所述匹配程度。

17、上述方案中,所述统计值确定模块,还用于确定所述统计值序列的变化特征;基于所述变化特征,确定所述统计值序列的所述序列类型。

18、上述方案中,所述统计项确定模块,还用于将所述数据库语句分解为多个子操作语句;针对每个所述子操作语句,确定关联的第二统计项;利用多个所述子操作语句的第二统计项,确定所述数据库语句的所述第一统计项。

19、上述方案中,所述统计项确定模块,还用于确定所述子操作语句所对应的操作类型;将所述操作类型所需求的统计项,确定为所述第二统计项。

20、上述方案中,所述路径确定模块,还用于基于所述第二统计值,生成多个候选的第二执行路径;计算每个所述第二执行路径的第一执行代价,其中,所述第一执行代价用于描述所述第二执行路径在执行时所消耗的资源和时间;将多个所述第二执行路径中与最小的所述第一执行代价对应的所述第二执行路径中,确定为所述第一执行路径。

21、上述方案中,所述路径确定模块,还用于针对所述第一执行路径,确定第一过期时间和第一更新时间,其中,所述第一过期时间是指所述第一执行路径失效的时间,所述第一更新时间是指针对所述数据库语句重新生成执行路径的时间;将所述第一执行路径、所述第一过期时间和所述第一更新时间进行缓存。

22、上述方案中,所述路径确定模块,还用于基于所述第一统计值和所述第二统计值,预测所述第一统计项的变化时间,其中,所述变化时间是指统计值的变化程度大于程度阈值的时间;基于所述变化时间,确定所述第一过期时间,并从所述第一过期时间之前的时间中,确定所述第一更新时间。

23、上述方案中,所述统计项确定模块,还用于针对所述数据库语句进行哈希编码,得到哈希值;基于所述哈希值,从缓存中查找所述数据库语句当前使用的第三执行路径;当到达所述第三执行路径的第二更新时间时,针对接收到的数据库语句,确定第一统计项。

24、上述方案中,所述路径确定模块,还用于当到达所述第三执行路径的第二过期时间时,将所述数据库语句的执行路径,从所述第三执行路径切换至所述第一执行路径。

25、上述方案中,所述路径确定模块,还用于计算所述第一执行路径的第二执行代价,以及计算所述第三执行路径的第三执行代价;当所述第三执行代价大于所述第二执行代价时,将所述数据库语句的执行路径,从所述第三执行路径切换至所述第一执行路径。

26、本技术实施例提供一种电子设备,所述电子设备包括:

27、存储器,用于存储计算机可执行指令或者计算机程序;

28、处理器,用于执行所述存储器中存储的计算机可执行指令或者计算机程序时,实现本技术实施例提供的信息生成方法。

29、本技术实施例提供一种计算机可读存储介质,存储有计算机程序或计算机可执行指令,用于被处理器执行时实现本技术实施例提供的信息生成方法。

30、本技术实施例提供一种计算机程序产品,包括计算机程序或计算机可执行指令,所述计算机程序或计算机可执行指令被处理器执行时,实现本技术实施例提供的信息生成方法。

31、本技术实施例具有以下有益效果:先针对数据库语句确定出所需要的第一统计项,然后利用第一统计项在历史时间的第一统计值,预测出第一统计项在当前时间或未来时间的统计值,即最新的第二统计值,然后再基于预测出的第二统计值生成第一执行路径,如此,能够通过预测统计值,减少统计值的收集次数,从而减少在执行路径生成过程中,由于统计值的收集所造成的时间消耗和资源消耗,也就提升了执行路径生成的效率,减少了执行路径生成的资源消耗。