一种基于树注意力和基数感知的查询优化方法及存储介质技术

技术编号:38316046 阅读:14 留言:0更新日期:2023-07-29 08:58
本发明专利技术涉及数据库查询领域,提供了一种基于树注意力和基数感知的查询优化方法及存储介质。主旨在于解决目前的技术方案没有考虑查询优化中基数这一最为关键的影响因素,导致了长期代价的计算不准确的问题。主要方案包括数据收集,在数据库中随机生成查询语句并执行,获得其查询执行时间;DQN模型训练,利用步骤1中所收集的数据训练DQN中包含状态特征网络、动作特征网络和基数特征网络的q

【技术实现步骤摘要】
一种基于树注意力和基数感知的查询优化方法及存储介质


[0001]本专利技术涉及数据库查询领域,提供了一种基于树注意力和基数感知的查询优化方法及存储介质。

技术介绍

[0002]对于一条查询语句,数据库并不能直接执行。数据库需要首先解析查询语句,再由优化器生成对应的查询执行计划,最后交给执行引擎执行该计划。本专利技术中就如何在较短时间内针对多连接的查询生成较优的查询计划提出了一种有效的解决方法。
[0003]现有三技术中的技术方案与本申请提案最为接近:
[0004]1.中国专利技术专利,专利名称:一种基于改进型SDD

1算法的数据库多连接查询优化方法,申请号:CN201110043615.9。
[0005]首先执行改进的SDD

1算法,利用该算法得到一个查询执行策略集,将该执行策略集作为遗传算法的初始种群产生的依据。然后,执行遗传算法,利用遗传算法的全局搜索能力对SDD

1算法得到的结果进行优化。最终得到一个比较理想的查询执行策略。具体包括如下步骤:
[0006]步骤1:设置初始参数:包括SDD

1和遗传算法的初始参数设置;
[0007]步骤2:获取查询执行策略集:从构建的查询图中寻找有益双向半连接,并从有益双向半连接候选集中选择有益双向半连接到有益双向半连接集合BS中,重复以上步骤,直到查询图中不存在有益双向半连接,将所得有益双向半连接集合BS的值添加到执行策略集合ES中,重复以上步骤,直到运行次数达到N:
[0008]步骤3:构建遗传算法初始种群:对执行策略集合ES中的元素依次执行编码操作,并将所得结果作为遗传算法的初始种群;
[0009]步骤4:运行遗传算法:对种群重复执行交叉、变异、选择操作,直到运行次数达到M;
[0010]步骤5:输出查询执行策略:将步骤4输出种群中最好的个体作为最终结果,并将其解码为查询树,即查询执行策略。
[0011]2.中国专利技术专利,专利名称:一种基于超图和动态计划的大数据实时查询优化方法,申请号:CN201020231887.2。
[0012]一种基于超图和动态计划的大数据实时查询优化方法,包括最佳代价模型构建过程和执行计划空间搜索过程。最佳代价模型构建过程包括如下步骤:
[0013]步骤1:分析元数据服务器中表数据,构建生成细粒度的列级统计信息直方图,并将其存储在元数据服务器中;
[0014]步骤2:利用统计信息,构建相应最佳的代价模型供生成计划时使用。
[0015]执行计划空间搜索过程包括以下步骤:
[0016]步骤1:解析数据库查询语句,将结果保存与查询超图数据结构中。
[0017]步骤2:为单个关系初始化设置执行计划,将其保存在相应动态计划表中。
[0018]步骤3:定义好计算枚举策略:每个连通子图及连通补集只被生成一次;
[0019]步骤4:通过计算领域以枚举连通子图;
[0020]步骤5:为每个连通子图找到合适的连通补集;
[0021]步骤6:为每对连通子图和补集构成的执行计划计算其代价,依照代价模型更新其执行计划;
[0022]步骤7:重复执行步骤4——步骤7,直到整个左线性树构成的执行计划空间搜索完毕,生成执行计划树。
[0023]3.中国专利技术专利,专利名称:一种基于超图和动态计划的大数据实时查询优化方法,申请号:CN202011351761.3。
[0024]包括以下具体步骤:
[0025]步骤1:数据收集,在数据库中随机生成查询语句并执行,将查询语句对应的执行计划树,从根节点开始拆分,并记录各个节点的连接关系;
[0026]步骤2:模型训练,根据各个节点的连接关系对每个节点进行编码描述,得到编码特征矩阵,对每个节点进行图描述,得到图描述集合Edge,初始化DQN模型中的Q

network网络参数,DQN模型中的Q

network网络采用GAT图注意力网络,将编码特征矩阵与图描述集合Edge作为网络输入,对DQN模型进行训练;
[0027]步骤3:模型应用,对于一条查询语句涉及到的表,每个表作为一个节点,对给个节点初始化其图描述和编码,查询执行计划中每一步选择2个节点的连接都使用步骤2中训练得到的DQN模型生成,此时状态转移,更新图描述和编码描述,直到所有表都被连接就生成了完整的查询计划。
[0028]技术方案一存在的缺点有:
[0029]1、遗传算法本质上来说是一种贪心策略,容易陷入局部最优解;
[0030]2、此方案需要设置遗传算法迭代次数,当迭代次数较少时,不能获得较优的查询执行计划。而当迭代次数较多时,需要较长的算法执行时间的同时,不能避免陷入局部最优。
[0031]3、对查询执行计划编码一维编码,不能捕捉到查询执行计划的树形结构信息。
[0032]技术方案二存在的缺点有:
[0033]1、使用左线性树来枚举搜索整个查询执行计划空间,当查询语句的连接关系非常复杂时,查询执行计划空间会非常庞大,搜索整个查询执行空间会耗费大量时间。
[0034]技术方案三存在的缺点有:
[0035]1、使用GAT图注意力网络来作为DQN模型中q

network,将整个执行子计划中左右的节点以同等重要性来看待,忽略了执行计划中数据集从下往上传递的特点,难以完全衡量执行计划的长期奖励。
[0036]2、基数查询结果集的大小,即结果中记录的数,基数是数据库查询代价模型中最重要的参数,技术方案三没有充分利用,不利于提高q

network的准确性。
[0037]为方便本领域技术人员更好的理解技术背景,进一步的做如下说明:
[0038]在数据库中,执行查询语句时需要根据查询执行计划进行操作。由于查询语句可能涉及多个表的连接操作,而表的连接运算具有可交换可结合性,因此需要确定每次连接哪两个部分,以形成完整的查询执行计划。查询执行计划可以抽象为马尔可夫决策过程,其
中每个状态表示一个部分连接的情况,开始状态为所有表都未连接。在每个状态中,需要选择连接哪两个表或连接结果,直到所有状态中只剩下一个连接结果,此时即生成了一个完整的查询计划。例如,若要连接A、B、C共3张表,其连接代价分别为:C(A,B)=30,C(B,C)=20,C((A,B),C)=40,C((B,C),A)=90。若每次贪心的选择当前代价最小的连接顺序,其中C(B,C)=20为代价最小,则会首先连接B,C,然后再连接A,即最终则会选择((B,C),A),此时连接总代价为110(即B,C的连接代价为20,(B,C),A连接代价为90,连接代价为110);而实际上最优的连接顺序为((A,B),C),总代价仅为70。如果每一次连接都能够准确地计算长期代价,而非当前的单步代价就能够生成更优的连接顺序。

技术实现思路

本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于树注意力机制和基数感知的数据库多连接查询优化方法,其特征在于,包括以下主要步骤:步骤1:数据收集,在数据库中随机生成查询语句并执行,获得其查询执行时间;步骤2:DQN模型训练,将查询执行计划选择过程抽象为马尔可夫决策过程,使用强化学习DQN算法进行训练,利用步骤1中所收集的数据训练DQN中包含状态特征网络、动作特征网络和基数特征网络的q

network,得到DQN模型;步骤3:DQN模型应用,对于一条查询语句,使用步骤2中训练得到的DQN模型分别计算长期奖励,选择长期奖励最大的值即可选择最优连接,进而生成完整的执行计划,即得到生成完整的查询计划。2.根据权利要求1所述的一种基于树注意力机制和基数感知的数据库多连接查询优化方法,其特征在于:上述步骤1包括如下步骤:步骤1.1:数据收集,在数据库中随机生成查询语句并执行。步骤1.2:将其执行计划并拆分为多步的连接选择过程,收集每步的执行子计划、执行时间、被连接的表,作为q

network的训练数据。步骤1.3:收集查询语句和执行时间作为基数估计模型的训练数据。3.根据权利要求1所述的一种基于树注意力机制和基数感知的数据库多连接查询优化方法,其特征在于:在步骤2中基数特征网络构建方法如下:在步骤1中收集了很多查询语句以及其对应的基数作为训练数据,基数估计模型的结构为2层图卷积层、2层全连接层,当训练完成后,移除最后1层全连接层,只留下2层图卷积层和1层全连接层,作为基数特征网络。4.根据权利要求2所述的一种基于树注意力机制和基数感知的数据库多连接查询优化方法,其特征在于:基数估计模型的训练包括以下步骤:步骤2.1.1、对于一条查询语句,将其编码为图结构的数据;步骤2.1.1.1、将查询语句分解为表、约束谓词和连接谓词,其中每个表作为图中的一个节点,每个连接谓词形成图中的一条边;步骤2.1.1.2、对于表采用one

hot编码;对于约束谓词,将涉及的属性one

hot编码,操作符one

hot编码,约束谓词中的约束值直接放进编码中形成的图数据;步骤2.1.2、构造为图结构数据后,通过2层图卷积层,再通过2层全连接层输出基数;步骤2.1.3:基于步骤2.1中的基数估计模型,构造基于树注意力机制和基数感知的q

network,并训练,具体如下:步骤2.1.3.1、使用步骤1中收集的数据执行步骤2.1.1

步骤2.1.2进行训练,待训练完毕后,将此基数估计模型结合进DQN中的q

network中,冻结步骤2.1.2中前2层图卷积层,移除2层全连接层输出中的最后一层输出层,仅训练1层全连接层,以其输出向量作为基数特征网络的最终输出F
cardinality
。5.根据权利要求4所述的一种基于树注意力机制和基数感知的数据库多连接查询优化方法,其特征在于:步骤2中状态特征网络:状态即为执行子计划,以子查询树的形式表示,其中所有的叶子结点为表节点,其他节点为连接节点(表示的是连接表的连接关系),表节点的表...

【专利技术属性】
技术研发人员:詹思瑜周维清陈爱国秦科卢国明段贵多
申请(专利权)人:电子科技大学
类型:发明
国别省市:

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

1