【技术实现步骤摘要】
一种基于树注意力和基数感知的查询优化方法及存储介质
[0001]本专利技术涉及数据库查询领域,提供了一种基于树注意力和基数感知的查询优化方法及存储介质。
技术介绍
[0002]对于一条查询语句,数据库并不能直接执行。数据库需要首先解析查询语句,再由优化器生成对应的查询执行计划,最后交给执行引擎执行该计划。本专利技术中就如何在较短时间内针对多连接的查询生成较优的查询计划提出了一种有效的解决方法。
[0003]现有三技术中的技术方案与本申请提案最为接近:
[0004]1.中国专利技术专利,专利名称:一种基于改进型SDD
‑
1算法的数据库多连接查询优化方法,申请号:CN201110043615.9。
[0005]首先执行改进的SDD
‑
1算法,利用该算法得到一个查询执行策略集,将该执行策略集作为遗传算法的初始种群产生的依据。然后,执行遗传算法,利用遗传算法的全局搜索能力对SDD
‑
1算法得到的结果进行优化。最终得到一个比较理想的查询执行策略。具体包括如下步骤:
[0006]步骤1:设置初始参数:包括SDD
‑
1和遗传算法的初始参数设置;
[0007]步骤2:获取查询执行策略集:从构建的查询图中寻找有益双向半连接,并从有益双向半连接候选集中选择有益双向半连接到有益双向半连接集合BS中,重复以上步骤,直到查询图中不存在有益双向半连接,将所得有益双向半连接集合BS的值添加到执行策略集合ES中,重复以上步骤,直到运行次数 ...
【技术保护点】
【技术特征摘要】
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中状态特征网络:状态即为执行子计划,以子查询树的形式表示,其中所有的叶子结点为表节点,其他节点为连接节点(表示的是连接表的连接关系),表节点的表...
【专利技术属性】
技术研发人员:詹思瑜,周维清,陈爱国,秦科,卢国明,段贵多,
申请(专利权)人:电子科技大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。