System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于Listwise排序学习的数据库查询器优化方法技术_技高网

一种基于Listwise排序学习的数据库查询器优化方法技术

技术编号:40129686 阅读:4 留言:0更新日期:2024-01-23 21:56
本发明专利技术属于信息检索技术领域,具体涉及一种基于Listwise排序学习的数据库查询器优化方法。该方法引入列表排序来捕获所有候选计划的相对顺序,让它们与执行计划的实际计算成本的顺序保持一致。本发明专利技术设计了一种使用基于代价排序的损失函数进行训练的深度神经网络,应用基于树的卷积神经网络(TBCNN)来捕获执行计划的树结构特征以用于后续的排序任务,此外,还结合了掩码技术对计划枚举模块输出的候选计划进行编码,以增强模型的鲁棒性,让模型能够快速适应工作负载漂移和数据漂移。

【技术实现步骤摘要】

本专利技术属于信息检索,具体涉及一种基于listwise排序学习的数据库查询器优化方法。


技术介绍

1、在数据库管理系统领域中,有一种针对用户的sql查询语句进行内部优化的任务,称作查询优化器。查询优化器旨在从一个较大的执行计划空间中寻找最优的执行计划,其最小化了用户查询的执行时间和资源利用,同时最大化了系统的总体效率。

2、传统的查询优化器利用一组启发式的规则并使用基于代价的优化技术来生成执行计划,它们首先依赖于一组预定义的规则,这些规则规定了如何优化查询,然后根据数据统计信息(例如表大小、索引统计信息和数据分布信息)来估计不同执行计划的代价,然后选择代价估计最低的执行计划。然而,由于传统的基数估计经常做出简化的假设,因为每列都有均匀分布的值,导致计划不理想,并且可能会难以应对非常复杂的查询或数据分布快速变化的场景。此外,代价模型严重依赖基数估计,它估计查询中涉及的每个表中不同值的数量。代价模型的参数也很难确定,通常需要经验丰富的dba手动干预。

3、深度学习模型可以从数据中学习复杂的模式和关系,使它们能够适应各种查询模式和数据分布,而无需手动调整。因此,当前提出了许多学习型查询优化器用于端到端的来预测执行计划的代价,而不使用传统的代价模型来计算代价。

4、现有的学习型查询优化器通常采用的方法都是通过某种深度学习方法来学习一个代价模型,可以大致描述为下列流程:

5、1.通过用户发出的sql查询语句获取一组候选执行计划。

6、2.采用不同的编码技术对执行计划树进行特征编码。通常都是使用启发式的编码规则。

7、3.对编码后的树采用某种深度学习神经网络进行特征提取,然后通过全连接网络预测出执行计划的代价。

8、4.最后采用某种损失函数来最小化预测代价与实际代价之间差异。

9、但是上述实现方法存在以下缺点:

10、1.查询优化器的主要目标是从众多效果相同的执行计划中选择效率最高的执行计划,而不是准确预测执行计划的代价。现有的学习型查询优化器的目标都是准确预测执行计划的代价,这与查询优化器的目标不一致;

11、2.当面对新的工作负载时,因为它们缺乏根据工作负载动态变化进行动态调整的能力,所以它们的性能表现不佳。


技术实现思路

1、针对上述问题,本专利技术提出一种基于listwise排序学习的查询优化器优化方法。受到排序学习思想的启发,引入列表排序来捕获所有候选计划的相对顺序,让它们与执行计划的实际计算成本的顺序保持一致。本专利技术设计了一种使用基于代价排序的损失函数进行训练的深度神经网络,它应用基于树的卷积神经网络(tbcnn)来捕获执行计划的树结构特征以用于后续的排序任务,此外,它还结合了掩码技术对计划枚举模块输出的候选计划进行编码,以增强模型的鲁棒性,让模型能够快速适应工作负载漂移和数据漂移。

2、本专利技术采用的技术方案是:

3、一种基于listwise排序学习的查询优化器优化方法,包括以下步骤:

4、s1、基于listwise排序学习方法,将sql查询语句对应的候选执行计划作为训练实例,具体为通过数据库中的sql解析器和计划枚举器,将输入的sql查询语句q=q(1),q(2),…,q(m)中的每一条sql语句q(i)都解析为语法解析树,并生成n个效果等价但效率不等价的候选执行计划其中n(i)代表第i条sql语句的候选计划数量,每个执行计划都是一颗树的形式,树的节点代表物理执行算子;

5、s2、通过训练实例生成训练集,具体为将每个物理执行算子节点编码为向量节点,从而将候选执行计划树进行特征化,再通过掩蔽技术得到每个节点都是向量形式的树,表示为:因每个候选计划都与一个执行时间相关联,将执行时间作为每个候选计划的标签,将第i条sql语句的标签表示为从而得到整体的训练集为:

6、

7、s3、构建优化的学习型查询优化器,包括特征提取模块和预测模块,其中特征提取模块采用树卷积网络从查询计划树中提取节点特征和结构特征,卷积后,再提取查询计划树内的结构特征,从而生成与原始查询计划树不同的新树;经过树卷积之后,通过一个动态池化层将将所有查询计划树的结构特征集中到一个固定长度的向量中;预测模块使用两层全连接网络来预测执行计划的执行时间,并利用列表排序损失函数来最小化一组候选计划的预测执行时间排序列表与实际执行时间排序列表之间的差异,对于每个特征向量树输出它对应的代价这个代价反应了该执行计划的执行效率,即执行时间;从而对于每个查询语句q(i),对应的模型输出就是模型f的训练目标是最小化eff(i)和eff*(i)之间的排序差异,即其中l代表列表排序损失函数;

8、s4、利用训练集对学习型查询优化器进行训练,得到训练好的学习型查询优化器;

9、s5、将sql查询语句通过sql解析器和计划枚举器生成候选执行计划后,输入到训练好的学习型查询优化器,得到执行计划后,发送给执行引擎得到优化后的查询结果。

10、具体的,所述将每个物理执行算子节点编码为向量节点的方法是,对物理算子信息、谓词信息、基数估计信息、操作表的属性信息和操作的表信息进行编码。

11、具体的,所述采用树卷积网络从查询计划树中提取节点特征和结构特征的方法是,利用多层树卷积在每个查询计划树上滑动一组三角滤波器,提取树结构中不同节点之间的父子关系。

12、具体的,所述掩蔽技术具体为将编码得到的候选执行计划树中的部分数据以设定概率随机置0。

13、本专利技术的有益效果为,相比传统方法,本专利技术首次将列表排序学习方法应用于查询优化器,使得查询优化器可以直接对一组候选计划的相对关系进行排序,无需额外计算。同时通过随机掩蔽信息来模拟训练期间的工作负载变化,从而可以快速适应工作负载漂移并对动态环境具有鲁棒性。

本文档来自技高网...

【技术保护点】

1.一种基于Listwise排序学习的查询优化器优化方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的一种基于Listwise排序学习的数据库查询器优化方法,其特征在于,所述将每个物理执行算子节点编码为向量节点的方法是,对物理算子信息、谓词信息、基数估计信息、操作表的属性信息和操作的表信息进行编码。

3.根据权利要求1所述的一种基于Listwise排序学习的数据库查询器优化方法,其特征在于,所述采用树卷积网络从查询计划树中提取节点特征和结构特征的方法是,利用多层树卷积在每个查询计划树上滑动一组三角滤波器,提取树结构中不同节点之间的父子关系。

4.根据权利要求1所述的一种基于Listwise排序学习的数据库查询器优化方法,其特征在于,所述掩蔽技术具体为将编码得到的候选执行计划树中的部分数据以设定概率随机置0。

【技术特征摘要】

1.一种基于listwise排序学习的查询优化器优化方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的一种基于listwise排序学习的数据库查询器优化方法,其特征在于,所述将每个物理执行算子节点编码为向量节点的方法是,对物理算子信息、谓词信息、基数估计信息、操作表的属性信息和操作的表信息进行编码。

3.根据权利要求1所述的一种基于listwis...

【专利技术属性】
技术研发人员:席瑞陈雪颜子涵刘威刘昱博侯孟书
申请(专利权)人:电子科技大学
类型:发明
国别省市:

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

1