编码方法、响应时间预测方法及装置与流程

文档序号:36821812发布日期:2024-01-26 16:30阅读:18来源:国知局
编码方法、响应时间预测方法及装置与流程

本技术涉及数据库技术、人工智能领域,尤其涉及编码方法、响应时间预测方法及装置。


背景技术:

1、数据库在查询记录时,查询优化器会将用户输入的查询语句转化为查询计划,根据查询计划得到最终的结果。同一个语句,转化为不同的查询计划,在查询时会执行不同的操作过程,最终使得不同的查询计划的响应时间存在差异。为了提高查询的效率和系统的吞吐量,人们总是希望能够找到一个最优的查询计划来完成数据查询。

2、得益于人工智能技术的成熟发展,利用训练得到的预测模型来预测查询计划的查询性能取得不错的进展。但是,由于数据库的表、列等结构复杂,且,数据库的结构通常会随着时间的维度更新,这些问题使得预测模型的预测准确度受影响,甚至导致预测模型被重新训练。

3、因此,如何提高预测查询计划的查询性能的准确性和效率是领域技术人员正在研究的热点问题。


技术实现思路

1、本技术实施例提供了一种编码方法、响应时间预测方法及装置,能够减小编码复杂度,提高模型训练的效率,提升预测查询计划响应时间的准确性。

2、第一方面,本技术实施例提供一种编码方法,包括:

3、获取查询计划对应的逻辑查询计划树,所述逻辑查询计划树包含p个计划节点,所述p个计划节点中的每个计划节点至少包含操作类型,所述p个计划节点中的第一计划节点包含所述操作类型、元数据和查询谓词,其中,所述元数据包含表和/或列,所述列的数据类型的种类数量为m,m、p为正整数;

4、以独热编码的编码方式,对逻辑查询计划树的p个计划节点进行编码,得到p个张量,p个张量中的每个张量至少包含所述操作类型的编码,所述p个张量包含第一计划节点对应的第一张量,所述第一张量包含所述操作类型的编码、所述元数据的编码和所述查询谓词的编码,其中,所述元数据的编码中的列编码包含n位的数据,所述元数据的编码中的表编码由表中的列对应的列编码得到,n为正整数且m≤n≤m+1。

5、本技术实施例对查询计划进行编码的过程中,数据库中的列的编码与列的数据类型相关。这种编码方式可以减小列编码、表编码、原子谓词编码的编码复杂度,在数据库数据模式频繁变化的情况下可以保持编码的稳定性和适用性。

6、在第一方面的一种可能的实施方式中,所述p个张量用于输入预测模型以预测所述查询计划的响应时间。

7、通过减小列编码、表编码、原子谓词编码的复杂度,能够提高模型训练的效率,并且保持预测模型的稳定性和可扩展性。另外,查询过程中,响应时间与列的数据类型更具有相关性(例如text类型的列的扫描时间通常比int类型的列的扫描时间更长),因此,本技术实施例能够提高预测准确性。

8、在第一方面的又一种可能的实施方式中,所述元数据还包含索引;n=m+1,其中,n位数据中的m位用于指示所述列的数据类型,n位数据中除所述m位之外的1位用于指示所述列是否为索引。

9、在上述实施方式中,数据库的索引在训练时无需单独编码,而是通过列编码的其中部分数据位来指示是否为索引。进一步的简化了数据库中元数据编码,在数据库数据模式频繁变化的情况下可以保持预测模型的稳定性和可扩展性。

10、在模型训练场景中,通过简化元数据的编码,可以提升模型训练效率和预测模型的预测准确性。

11、在使用模型进行响应时间预测的场景中,通过简化元数据编码,能够缩短得到响应时间的时间,提高系统的吞吐量,提高用户体验。

12、在第一方面的又一种可能的实施方式中,表的编码由表中的列编码进行归一化操作得到。其中,归一化操作可以包含求均值操作、映射操作等。

13、在第一方面的又一种可能的实施方式中,所述元数据的编码中的表编码为表中的所有列的列编码的均值。

14、可选的,该平均值为按位取均值得到的。或者可选的,该平均值为按编码的整体数值取均值得到的。

15、在上述实施方式中,表编码为根据列编码进行归一化操作得到,由于列编码与数据类型相关,编码复杂度降低,由列编码得到表编码的复杂度也相应降低。通过上述实施方式可以降低表编码的复杂度,并且在数据库数据模式频繁变化的情况下可以保持预测模型的稳定性和可扩展性。

16、在模型训练场景中,通过简化元数据的编码,可以提升模型训练效率和预测模型的预测准确性。

17、在使用模型进行响应时间预测的场景中,通过简化元数据编码,能够缩短得到响应时间的时间,提高系统的吞吐量,提高用户体验。

18、在第一方面的又一种可能的实施方式中,所述查询谓词为树形结构,所述查询谓词包含多个原子谓词以及连接所述原子谓词的布尔操作,每个原子谓词包含操作列、操作符和操作参数,所述查询谓词的编码包含所述多个原子谓词的编码,每个原子谓词的编码包含所述操作列的编码、所述操作符的编码和所述操作参数的编码。

19、在第一方面的又一种可能的实施方式中,操作列的编码方式与列的编码方式相同。

20、在第一方面的又一种可能的实施方式中,所述操作列的数据类型的种类数量为m,所述操作列的数据类型的种类数量为m,所述操作列的编码包含n位的数据。

21、在第一方面的又一种可能的实施方式中,操作符的符号类型的种类数量为k种,所述操作符的编码包含k位的数据,所述操作参数的编码为根据所述操作参数得到的向量。

22、在上述实施方式中,查询谓词编码的过程中,操作符的编码与操作符号的符号类型相关。由于符号类型是有限的,因此,这种编码方式可以减小操作符号编码的复杂度,从而降低查询操作的编码复杂度,并且在数据库数据模式频繁变化的情况下可以保持预测模型的稳定性和可扩展性。

23、在第一方面的又一种可能的实施方式中,如果所述操作参数的参数类型为数值类型,所述操作参数的编码为根据操作参数所在列的最大值和最小值对所述操作参数进行归一化操作得到的。

24、在上述实施方式中,操作参数的编码为根据操作参数所在列的最大值和最小值对所述操作参数进行归一化操作得到的。归一化操作能够将操作参数转化为0-1之间的一个张量,从而减小操作参数的编码复杂度,提高模型训练效率。

25、在第一方面的又一种可能的实施方式中,如果所述操作参数的参数类型为字符型,所述操作参数的编码为将所述操作参数输入词向量生成模型所得到的向量。

26、可选的,词向量生成模型包含但不限于是skip-gram model。

27、在上述实施方式中,操作参数的编码为根据词向量生成模型得到的。词向量生成模型能够将操作参数转化为向量,从而减小操作参数的编码复杂度,提高模型训练效率。

28、第二方面,本技术实施例提供一种响应时间预测方法,包括:

29、获取查询计划对应的逻辑查询计划树,所述逻辑查询计划树包含p个计划节点,所述p个计划节点中的每个计划节点至少包含操作类型,所述p个计划节点中的第一计划节点包含所述操作类型、元数据和查询谓词,其中,所述元数据包含表和/或列,列的数据类型的种类数量为m,m、p为正整数;

30、以独热编码的编码方式,对逻辑查询计划树的p个计划节点进行编码,得到p个张量,p个张量中的每个张量至少包含所述操作类型的编码,所述p个张量包含第一计划节点对应的第一张量,所述第一张量包含所述操作类型的编码、所述元数据的编码和所述查询谓词的编码,其中,所述元数据的编码中的列编码包含n位的数据,所述元数据的编码中的表编码由表中的列对应的列编码得到,n为正整数且m≤n≤m+1;

31、将所述p个张量分别输入到预测模型中的多个表示模型中,其中,所述多个表示模型为树形结构,一个张量输入到在树结构的位置上对应的一个表示模型;

32、根据所述p个张量对所述多个表示模型进行递归训练,得到全局表示向量;

33、根据所述全局表示向量预测所述查询计划的预计响应时间。

34、本技术实施例中,对查询计划进行编码的过程中,数据库中的列的编码与列的数据类型相关。这种编码方式可以减小列编码、表编码、原子谓词编码的复杂度,并且在数据库数据模式频繁变化的情况下可以保持预测模型的稳定性和可扩展性。

35、在第二方面的又一种可能的实施方式中,所述方法还包括:

36、根据所述查询计划的预计响应时间,确定是否执行所述查询计划。

37、在第二方面的又一种可能的实施方式中,所述方法还包括:

38、根据所述预计响应时间和所述查询计划的实际响应时间,对所述预测模型进行调整。

39、在第二方面的又一种可能的实施方式中,所述元数据还包含索引;n=m+1,其中,n位数据中的m位用于指示所述列的数据类型,n位数据中除所述m位之外的1位用于指示所述列是否为索引。

40、在第二方面的又一种可能的实施方式中,表的编码由表中的列编码进行归一化操作得到。其中,归一化操作可以包含求均值操作、映射操作等。

41、在第二方面的又一种可能的实施方式中,所述元数据的编码中的表编码为表中的所有列的列编码的均值。

42、可选的,该平均值为按位取均值得到的。或者可选的,该平均值为按编码的整体数值取均值得到的。

43、在第二方面的又一种可能的实施方式中,所述查询谓词为树形结构,所述查询谓词包含多个原子谓词以及连接所述原子谓词的布尔操作,每个原子谓词包含操作列、操作符和操作参数,所述查询谓词的编码包含所述多个原子谓词的编码,每个原子谓词的编码包含所述操作列的编码、所述操作符的编码和所述操作参数的编码。

44、在第二方面的又一种可能的实施方式中,操作列的编码方式与列的编码方式相同。

45、在第二方面的又一种可能的实施方式中,所述操作列的数据类型的种类数量为m,所述操作列的数据类型的种类数量为m,所述操作列的编码包含n位的数据。

46、在第二方面的又一种可能的实施方式中,操作符的符号类型的种类数量为k种,所述操作符的编码包含k位的数据,所述操作参数的编码为根据所述操作参数得到的向量。

47、在第二方面的又一种可能的实施方式中,如果所述操作参数的参数类型为数值类型,所述操作参数的编码为根据操作参数所在列的最大值和最小值对所述操作参数进行归一化操作得到的。

48、在第二方面的又一种可能的实施方式中,如果所述操作参数的参数类型为字符型,所述操作参数的编码为将所述操作参数输入词向量生成模型所得到的向量。

49、可选的,词向量生成模型包含但不限于是skip-gram model。

50、在第二方面的又一种可能的实施方式中,所述多个表示模型中的每个表示模型包含长短记忆神经网络,所述根据所述p个张量对所述多个表示模型进行递归训练,得到全局表示向量,包括:

51、根据所述p个张量得到p个嵌入向量,并将所述p个嵌入向量分别输入对应的表示模型中的长短记忆神经网络;

52、孩子表示模型根据输入的表示向量和输入的嵌入向量,对长短记忆神经网络进行训练,向上一层的提供表示向量;

53、父表示模型根据左孩子提供的表示向量、右孩子提供的表示向量和输入的嵌入向量,对长短记忆神经网络进行训练,向上一层提供表示向量;

54、重复上述训练步骤,直到根表示模型输出全局表示向量。

55、在上述实施方式中,多个表示模型可以用于递归地训练计划节点的表示,使用从特征中学习的表示向量来表示计划节点的结果,然后将表示向量输入到上一层表示模型。由于表示模型为树形结构,能够保证信息通过树结构传递到根节点,最终输出全局表示向量(整个逻辑查询计划树的学习结构)。采用长短时记忆神经网络进行递归训练,可以解决梯度消失和梯度爆炸问题。

56、在第二方面的又一种可能的实施方式中,左孩子提供的表示向量和右孩子提供的表示向量对应的权重不同。通过给左右孩子设计不同的权重,能够充分捕获计划树的结构信息,避免信息丢失,提升表示向量的准确性,提高预测的准确率。

57、在第二方面的又一种可能的实施方式中,所述根据所述p个张量得到p个嵌入向量,还包括:

58、对所述第一张量中的操作类型的编码和元数据的编码进行线性变换和激活处理,得到第一中间嵌入向量;

59、根据所述第一张量中的查询谓词编码,得到目标线性值;

60、对所述目标线性值进行线性变化和激活处理得到第二中间嵌入向量;

61、根据第一中间嵌入向量和所述第二中间嵌入向量得到所述嵌入向量。

62、在上述实施方式中,张量可以被处理得到更加稠密的嵌入向量,易于提取特征,有利于提升模型训练的效率。

63、在第二方面的又一种可能的实施方式中,所述根据所述第一张量中的查询谓词编码,得到目标线性值,包括:

64、将所述查询谓词中的每个原子谓词进行线性变换,得到多个子线性值;

65、若两个子线性值的对应的原子谓词之间使用and连接,取所述两个子线性值中较大的线性值进行下一步计算;

66、若两个子线性值对应的原子谓词之间使用or连接,取所述两个子线性值中较小的子线性值进行下一步计算,重复上述步骤直到得到所述目标线性值。

67、在上述实施方式中,查询谓词的编码可以由树形结构的编码转为一个稠密向量,降低了查询谓词的编码的复杂度,且得到的嵌入向量便于提取特征,从而能够提高模型训练的效率。

68、第三方面,本技术实施例提供一种编码装置,该编码装置用于实现第一方面或第一方面任一种可能的实施方式所描述的方法。

69、在第三方面的一种可能的实施方式中,所述编码装置包含获取单元和处理单元,其中:

70、所述获取单元,用于获取查询计划对应的逻辑查询计划树,所述逻辑查询计划树包含p个计划节点,所述p个计划节点中的每个计划节点至少包含操作类型,所述p个计划节点中的第一计划节点包含所述操作类型、元数据和查询谓词,其中,所述元数据包含表和/或列,所述列的数据类型的种类数量为m,m、p为正整数;

71、所述处理单元,用于以独热编码的编码方式,对逻辑查询计划树的p个计划节点进行编码,得到p个张量,p个张量中的每个张量至少包含所述操作类型的编码,所述p个张量包含第一计划节点对应的第一张量,所述第一张量包含所述操作类型的编码、所述元数据的编码和所述查询谓词的编码,其中,所述元数据的编码中的列编码包含n位的数据,所述元数据的编码中的表编码由表中的列对应的列编码得到,n为正整数且m≤n≤m+1。

72、在第三方面的一种可能的实施方式中,所述p个张量用于输入预测模型以预测所述查询计划的响应时间。

73、在第三方面的又一种可能的实施方式中,所述元数据还包含索引;n=m+1,其中,n位数据中的m位用于指示所述列的数据类型,n位数据中除所述m位之外的1位用于指示所述列是否为索引。

74、在第三方面的又一种可能的实施方式中,表的编码由表中的列编码进行归一化操作得到。其中,归一化操作可以包含求均值操作、映射操作等。

75、在第三方面的又一种可能的实施方式中,所述元数据的编码中的表编码为表中的所有列的列编码的均值。

76、可选的,该平均值为按位取均值得到的。或者可选的,该平均值为按编码的整体数值取均值得到的。

77、在第三方面的又一种可能的实施方式中,所述查询谓词为树形结构,所述查询谓词包含多个原子谓词以及连接所述原子谓词的布尔操作,每个原子谓词包含操作列、操作符和操作参数,所述查询谓词的编码包含所述多个原子谓词的编码,每个原子谓词的编码包含所述操作列的编码、所述操作符的编码和所述操作参数的编码。

78、在第三方面的又一种可能的实施方式中,操作列的编码方式与列的编码方式相同。

79、在第三方面的又一种可能的实施方式中,所述操作列的数据类型的种类数量为m,所述操作列的数据类型的种类数量为m,所述操作列的编码包含n位的数据。

80、在第三方面的又一种可能的实施方式中,操作符的符号类型的种类数量为k种,所述操作符的编码包含k位的数据,所述操作参数的编码为根据所述操作参数得到的向量。

81、在第三方面的又一种可能的实施方式中,如果所述操作参数的参数类型为数值类型,所述操作参数的编码为根据操作参数所在列的最大值和最小值对所述操作参数进行归一化操作得到的。

82、在第三方面的又一种可能的实施方式中,如果所述操作参数的参数类型为字符型,所述操作参数的编码为将所述操作参数输入词向量生成模型所得到的向量。

83、可选的,词向量生成模型包含但不限于是skip-gram model。

84、第四方面,本技术实施例提供一种响应时间预测装置,所述响应时间预测装置用于执行第二方面或第二方面任一种可能的实施方式所描述的方法。

85、在第四方面的一种可能的实施方式中,所述响应时间预测装置包含获取单元、编码单元和处理单元,其中:

86、所述获取单元,用于获取查询计划对应的逻辑查询计划树,所述逻辑查询计划树包含p个计划节点,所述p个计划节点中的每个计划节点至少包含操作类型,所述p个计划节点中的第一计划节点包含所述操作类型、元数据和查询谓词,其中,所述元数据包含表和/或列,列的数据类型的种类数量为m,m、p为正整数;

87、所述编码单元,用于以独热编码的编码方式,对逻辑查询计划树的p个计划节点进行编码,得到p个张量,p个张量中的每个张量至少包含所述操作类型的编码,所述p个张量包含第一计划节点对应的第一张量,所述第一张量包含所述操作类型的编码、所述元数据的编码和所述查询谓词的编码,其中,所述元数据的编码中的列编码包含n位的数据,所述元数据的编码中的表编码由表中的列对应的列编码得到,n为正整数且m≤n≤m+1;

88、所述处理单元,用于将所述p个张量分别输入到预测模型中的多个表示模型中,其中,所述多个表示模型为树形结构,一个张量输入到在树结构的位置上对应的一个表示模型;

89、所述处理单元,用于根据所述p个张量对所述多个表示模型进行递归训练,得到全局表示向量;

90、所述处理单元,用于根据所述全局表示向量预测所述查询计划的预计响应时间。

91、在第四方面的又一种可能的实施方式中,所述处理单元,还用于:

92、根据所述查询计划的预计响应时间,确定是否执行所述查询计划。

93、在第四方面的又一种可能的实施方式中,所述处理单元,还用于:

94、根据所述预计响应时间和所述查询计划的实际响应时间,对所述预测模型进行调整。

95、在第四方面的又一种可能的实施方式中,所述元数据还包含索引;n=m+1,其中,n位数据中的m位用于指示所述列的数据类型,n位数据中除所述m位之外的1位用于指示所述列是否为索引。

96、在第四方面的又一种可能的实施方式中,表的编码由表中的列编码进行归一化操作得到。其中,归一化操作可以包含求均值操作、映射操作等。

97、在第四方面的又一种可能的实施方式中,所述元数据的编码中的表编码为表中的所有列的列编码的均值。

98、可选的,该平均值为按位取均值得到的。或者可选的,该平均值为按编码的整体数值取均值得到的。

99、在第四方面的又一种可能的实施方式中,所述查询谓词为树形结构,所述查询谓词包含多个原子谓词以及连接所述原子谓词的布尔操作,每个原子谓词包含操作列、操作符和操作参数,所述查询谓词的编码包含所述多个原子谓词的编码,每个原子谓词的编码包含所述操作列的编码、所述操作符的编码和所述操作参数的编码。

100、在第四方面的又一种可能的实施方式中,操作列的编码方式与列的编码方式相同。

101、在第四方面的又一种可能的实施方式中,所述操作列的数据类型的种类数量为m,所述操作列的数据类型的种类数量为m,所述操作列的编码包含n位的数据。

102、在第四方面的又一种可能的实施方式中,操作符的符号类型的种类数量为k种,所述操作符的编码包含k位的数据,所述操作参数的编码为根据所述操作参数得到的向量。

103、在第四方面的又一种可能的实施方式中,如果所述操作参数的参数类型为数值类型,所述操作参数的编码为根据操作参数所在列的最大值和最小值对所述操作参数进行归一化操作得到的。

104、在第四方面的又一种可能的实施方式中,如果所述操作参数的参数类型为字符型,所述操作参数的编码为将所述操作参数输入词向量生成模型所得到的向量。

105、可选的,词向量生成模型包含但不限于是skip-gram model。

106、在第四方面的又一种可能的实施方式中,所述多个表示模型中的每个表示模型包含长短记忆神经网络,所述处理单元,还用于:

107、根据所述p个张量得到p个嵌入向量,并将所述p个嵌入向量分别输入对应的表示模型中的长短记忆神经网络;

108、孩子表示模型根据输入的表示向量和输入的嵌入向量,对长短记忆神经网络进行训练,向上一层的提供表示向量;

109、父表示模型根据左孩子提供的表示向量、右孩子提供的表示向量和输入的嵌入向量,对长短记忆神经网络进行训练,向上一层提供表示向量,其中左孩子提供的表示向量和右孩子提供的表示向量对应的权重不同;

110、重复上述训练步骤,直到根表示模型输出全局表示向量。

111、在第四方面的又一种可能的实施方式中,所述处理单元,还用于:

112、对所述第一张量中的操作类型的编码和元数据的编码进行线性变换和激活处理,得到第一中间嵌入向量;

113、根据所述第一张量中的查询谓词编码,得到目标线性值;

114、对所述目标线性值进行线性变化和激活处理得到第二中间嵌入向量;

115、根据第一中间嵌入向量和所述第二中间嵌入向量得到所述嵌入向量。

116、在第四方面的又一种可能的实施方式中,所述处理单元,还用于:

117、将所述查询谓词中的每个原子谓词进行线性变换,得到多个子线性值;

118、若两个子线性值的对应的原子谓词之间使用and连接,取所述两个子线性值中较大的线性值进行下一步计算;

119、若两个子线性值对应的原子谓词之间使用or连接,取所述两个子线性值中较小的子线性值进行下一步计算,重复上述步骤直到得到所述目标线性值。

120、第五方面,本技术实施例提供一种计算设备,该计算设备包括处理器和存储器;所述处理器执行存储中存储的指令,以使得所述计算设备实现前述第一方面任一项所描述的方法。

121、可选的,所述计算设备还包括通信接口,所述通信接口用于接收和/或发送数据,和/或,所述通信接口用于为所述处理器提供输入和/或输出。

122、第六方面,本技术实施例提供一种计算设备,该计算设备包括处理器和存储器;所述处理器执行存储中存储的指令,以使得所述计算设备实现前述第二方面任一项所描述的方法。

123、可选的,所述计算设备还包括通信接口,所述通信接口用于接收和/或发送数据,和/或,所述通信接口用于为所述处理器提供输入和/或输出。

124、需要说明的是,上述第五方面和/或第六方面是以通过调用计算机指定来执行方法的处理器(或称通用处理器)为例进行说明。具体实施过程中,处理器还可以是专用处理器,此时计算机指令已经预先加载在处理器中。可选的,处理器还可以既包括专用处理器也包括通用处理器。

125、可选的,处理器和存储器还可能集成于一个器件中,即处理器和存储器还可以被集成在一起。

126、第七方面,本技术实施例还提供一种计算设备集群,该计算设备集群包含至少一个计算设备,每个计算设备包括处理器和存储器;

127、所述至少一个计算设备的处理器用于执行所述至少一个计算设备的存储器中存储的指令,以使得所述计算设备集群执行第一方面任一项所述的方法,或者执行第二方面任一项所述的方法。

128、第八方面,本技术实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在至少一个处理器上运行时,实现前述第一方面任一项所描述的方法,或者实现前述第二方面任一项所描述的方法。

129、第九方面,本技术提供了一种计算机程序产品,计算机程序产品包括计算机指令,当所述指令在至少一个处理器上运行时,实现前述第一方面任一项所描述的方法,或者实现前述第二方面任一项所描述的方法。

130、可选的,该计算机程序产品可以为一个软件安装包或镜像包,在需要使用前述方法的情况下,可以下载该计算机程序产品并在计算设备上执行该计算机程序产品。

131、本技术第二至第九方面所提供的技术方案,其部分有益效果可以参考第一方面的技术方案的有益效果,此处不再赘述。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1