查询决策模型的训练方法、数据库查询方法、装置及设备与流程

摘要: 本技术涉及数据库,特别是涉及一种查询决策模型的训练方法、数据库查询方法、装置及设备。背景技术:1、数据库(database)是一种用于存储、管理和查询数据的系统...
查询决策模型的训练方法、数据库查询方法、装置及设备与流程

本技术涉及数据库,特别是涉及一种查询决策模型的训练方法、数据库查询方法、装置及设备。

背景技术:

1、数据库(database)是一种用于存储、管理和查询数据的系统,广泛应用于各类业务场景,如电子商务、金融服务以及社交媒体等场景下。目前,在数据库中进行数据查询时,可以根据需求编辑查询语句,将其输入到数据库中。数据库内配置有查询优化器,它可以负责分析查询语句,生成对应的一些查询计划树,并从中挑选执行效率较高的查询计划树来实现数据的查询。

2、相关技术中,传统的查询优化器一般是基于静态规则和统计信息(如数据库的表大小、索引分布等)构建成本模型,然后通过成本模型来确定各个查询计划树对应的执行代价数据,从而挑选执行效率较高的查询计划树。在实际应用中发现,这种实现方式依赖人工设计的固定公式和启发式规则,可能无法适应数据分布动态变化的情况;而且对于较为复杂的查询需求,成本模型确定的执行代价数据的准确度偏低,导致挑选的查询计划树在实际执行中性能欠佳,影响数据的查询效率。

技术实现思路

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、可选地,在一些实施例中,所述查询决策模型中还包括开销预测模型;所述预测单元具体用于:

32、将所述第一样本查询计划树输入到预先训练好的开销预测模型中,通过所述开销预测模型提取所述第一样本查询计划树对应的第一查询特征;

33、基于所述第一查询特征,通过所述开销预测模型进行回归预测,得到所述第一样本查询计划树对应的预测执行开销数据。

34、可选地,在一些实施例中,所述第一样本查询计划树包括多个层级,每个所述层级中包括至少一个节点;所述预测单元具体用于:

35、获取各个所述节点的节点属性信息;

36、通过所述开销预测模型对所述节点属性信息进行编码,得到每个所述节点对应的节点特征;

37、将所述第一样本查询计划树中的倒数第二层确定为待处理层,通过所述开销预测模型对所述待处理层的各个待处理节点进行特征聚合,得到各个所述待处理节点对应的新的节点特征;

38、检测当前的所述待处理层是否为所述第一样本查询计划树中的首层;

39、如果当前的所述待处理层不为所述第一样本查询计划树中的首层,将所述第一样本查询计划树中处于所述待处理层的上一层确定为新的待处理层,并返回执行所述通过所述开销预测模型对所述待处理层的各个待处理节点进行特征聚合的步骤;

40、如果当前的所述待处理层为所述第一样本查询计划树中的首层,将所述第一样本查询计划树的根节点对应的节点特征确定为所述第一查询特征。

41、可选地,在一些实施例中,所述预测单元具体用于:

42、根据所述开销预测模型,确定当前的所述待处理层对应的共享卷积核;其中,所述开销预测模型中包括多个不同的共享卷积核,每个所述共享卷积核对应查询计划树一个层级;

43、从所述待处理节点中确定第一节点;其中,所述第一节点为包括有子节点的待处理节点;

44、通过所述共享卷积核,对所述第一节点和所述第一节点对应的所述子节点进行特征聚合。

45、可选地,在一些实施例中,所述训练装置还包括第一训练单元,所述第一训练单元具体用于:

46、获取多个第二样本查询计划树以及各个所述第二样本查询计划树对应的标签;其中,所述标签用于表征所述第二样本查询计划树对应的执行开销数据的真实结果;

47、将所述第二样本查询计划树输入到待优化的开销预测模型中,通过所述开销预测模型提取所述第二样本查询计划树对应的第二查询特征;

48、基于所述第二查询特征,通过所述开销预测模型进行回归预测,得到所述第二样本查询计划树对应的第二预测执行开销数据;

49、根据所述第二样本查询计划树对应的标签和所述第二预测执行开销数据,确定训练的损失值;

50、根据所述损失值,对所述开销预测模型的参数进行更新,得到训练好的开销预测模型。

51、可选地,在一些实施例中,所述标签包括执行时间标签和资源消耗标签,所述第二预测执行开销数据包括预测执行时间数据和预测资源消耗数据;所述第一训练单元具体用于:

52、根据所述执行时间标签和所述预测执行时间数据,确定训练的第一子损失值;

53、根据所述资源消耗标签和所述预测资源消耗数据,确定训练的第二子损失值;

54、对所述第一子损失值和所述第二子损失值进行加权求和,得到训练的损失值。

55、另一方面,本技术实施例提供了一种数据库查询装置,所述装置包括:

56、第二获取单元,用于获取目标查询语句;

57、第二生成单元,用于将所述目标查询语句输入到原始查询优化器中,通过所述原始查询优化器生成所述目标查询语句对应的目标查询计划集合;其中,所述目标查询计划集合中包括至少一个目标查询计划树;

58、第二挑选单元,用于根据所述目标查询语句和所述数据库确定状态值,通过前述的训练方法训练得到的查询决策模型从所述目标查询计划树中确定所述目标查询语句对应的目标动作决策;其中,所述查询决策模型包括强化学习模型;

59、执行单元,用于在数据库中执行所述目标动作决策,得到查询结果。

60、另一方面,本技术实施例提供了一种电子设备,包括处理器以及存储器;

61、所述存储器用于存储计算机程序;

62、所述处理器执行所述计算机程序实现前述的查询决策模型的训练方法或者数据库查询方法。

63、另一方面,本技术实施例提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行实现前述的查询决策模型的训练方法或者数据库查询方法。

64、另一方面,本技术实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序存储在计算机可读存介质中,计算机设备的处理器从计算机可读存储介质读取该计算机程序,处理器执行该计算机程序,使得该计算机设备执行实现前述的查询决策模型的训练方法或者数据库查询方法。

65、本技术实施例至少包括以下有益效果:本技术提供一种查询决策模型的训练方法、数据库查询方法、装置及设备,该训练方法获取针对数据库的多个样本查询语句,通过原始查询优化器生成每个原始查询优化器对应的至少一个第一样本查询计划树,对各个第一样本查询计划树的执行开销进行预测,确定对应的预测执行开销数据,以此为基础构建强化学习模型的反馈机制:根据样本查询语句和数据库确定状态值,通过强化学习模型从候选的第一样本查询计划树中确定第一动作决策,并根据第一动作决策对应的预测执行开销数据确定奖励值,从而动态调整强化学习模型的参数。该训练方法能够动态优化查询决策模型中的强化学习模型,提高强化学习模型确定动作决策的准确度,从而改善挑选的查询计划树在实际执行中的性能,有利于提高数据的查询效率。