基于探索价值和查询代价的数据库查询优化方法.pdf

上传人:狗** 文档编号:14524852 上传时间:2024-05-19 格式:PDF 页数:11 大小:2.08MB
收藏 版权申诉 举报 下载
基于探索价值和查询代价的数据库查询优化方法.pdf_第1页
第1页 / 共11页
基于探索价值和查询代价的数据库查询优化方法.pdf_第2页
第2页 / 共11页
基于探索价值和查询代价的数据库查询优化方法.pdf_第3页
第3页 / 共11页
文档描述:

《基于探索价值和查询代价的数据库查询优化方法.pdf》由会员分享,可在线阅读,更多相关《基于探索价值和查询代价的数据库查询优化方法.pdf(11页完成版)》请在专利查询网上搜索。

1、(19)国家知识产权局(12)发明专利申请(10)申请公布号 (43)申请公布日 (21)申请号 202410018425.9(22)申请日 2024.01.05(71)申请人 凯美瑞德(苏州)信息科技股份有限公司地址 215124 江苏省苏州市工业园区八达街118号 申请人 西北工业大学太仓长三角研究院(72)发明人 孟江华姜栋琛冯杰明金轲董鸿毅陈群刘海龙张枨昊(74)专利代理机构 西北工业大学专利中心 61204专利代理师 顾潮琪(51)Int.Cl.G06F 16/2453(2019.01)G06N 20/00(2019.01)G06F 18/27(2023.01)(54)发明名称一种基。

2、于探索价值和查询代价的数据库查询优化方法(57)摘要本发明提供了一种基于探索价值和查询代价的数据库查询优化方法,通过负载预测来推断未来的查询模板分布,通过机器学习进行基数估计进而估计每个查询的查询代价。本发明优化了传统学习只对当前的查询进行代价估计的策略,使得查询估计面向未来和当前的结合来选择最优的查询执行计划。本发明的查询方法提出的探索价值的定义,使得当前查询的查询计划对于未来预测的查询的价值能够具象化,进而为数据库查询优化提供更深入的见解和决策支持。权利要求书2页 说明书5页 附图3页CN 117520385 A2024.02.06CN 117520385 A1.一种基于探索价值和查询代价。

3、的数据库查询优化方法,其特征在于包括下述步骤:步骤1:数据库中的执行引擎将历史执行的执行计划以及执行计划所对应的真实基数数据存入缓存池中,接着利用回归模型对缓存池中的数据进行离线训练和建模,得到基数模型M;步骤2:优化器从数据库管理系统中获取当前的查询语句,优化器基于当前的查询语句生成对应的所有查询计划,并利用在步骤1训练完成的基数模型M和数据库本身的基数估计模块,对所有的查询计划进行基数估计,最后再采用数据库本身的代价估计模块对每个执行计划进行代价估计,从而得到每个查询计划的估计代价;步骤3:通过数据库管理系统执行查询操作的记录和日志,获取数据库管理系统的历史查询,历史查询包括历史执行的查询。

4、语句的代码和模板、查询操作执行所花费的时间及查询操作返回的结果数据,利用该历史查询进行未来查询的预测,得到查询模板分布P;步骤4:根据步骤2得到的所有查询计划,将每一个执行计划分解为若干个子执行计划,分别估计各个子计划节点对每个查询模板的提升度V(v1,v2,vi,vn),其中vi指子计划节点i对于查询模板pi的提升度,n是查询模版个数;步骤5:结合步骤3得到的查询模板分布P(p1,p2,pi,pn)和步骤4得到的提升度V(v1,v2,vi,vn),通过得到各个子计划节点的探索价值,其中为探索价值,Plan指各个子计划节点,如同代价估计一样,累加执行计划上的所有子计划节点的探索价值,得到该执行。

5、计划的探索价值,即:;其中,Query为执行计划;步骤6:根据最优化条件对所有查询计划进行筛选,得到最优的查询计划,即在保证所选执行计划的代价低于给定阈值的条件下,选择探索价值最大的执行计划,并将该查询计划发送给执行引擎。2.根据权利要求1所述的基于探索价值和查询代价的数据库查询优化方法,其特征在于:所述回归模型采用局部加权回归模型LWPR。3.根据权利要求1所述的基于探索价值和查询代价的数据库查询优化方法,其特征在于:所述步骤3中,查询都是基于查询模板生成,因此未来查询的预测等价于查询模板的分布,使用Markov模型得到查询模板分布P(p1,p2,pi,pn),其中pi指下一个查询可能服从的。

6、查询模板。4.根据权利要求1所述的基于探索价值和查询代价的数据库查询优化方法,其特征在于:所述未来查询的预测的步骤为:假设查询负载有n个查询模板,设下一个查询语句到来的时刻为t,时刻t之前的历史查询模板集合为Xt1,Xt2,Xt3,.,Xtm,其中Xt1是t1时刻的查询模板,利用训练的m阶Markov模型和历史查询,计算出t时刻的查询模板分布为P(p1,权利要求书1/2 页2CN 117520385 A2p2,pi,pn)。5.根据权利要求1所述的基于探索价值和查询代价的数据库查询优化方法,其特征在于:每个查询模板的提升度V(v1,v2,vi,vn)的计算步骤为:V(v1,v2,vi,vn)中。

7、vi由子计划节点和第i个可能服从的查询模板pi的最近k个历史查询通过LWPR模型计算得到,具体的说,每个vi的计算过程如下:设第i个查询模板pi的历史查询为,其中表示查询模板pi的最近k个历史查询,LWPR模型具有M个感受野(RF1,RF2,RFM),M个感受野对应的中心点为C(c1,c2,cM);首先,利用Qi计算RF中心点C的分布Pi,然后,通过LWPR模型中每个RF的线性模型,计算每个线性模型的提升度Vi,Vi通过每个RF的线性模型的预测不可信度进行刻画;最后,得到。6.根据权利要求1所述的基于探索价值和查询代价的数据库查询优化方法,其特征在于:所述的根据最优化条件对所有查询计划进行筛选。

8、,其中最优化条件为:;其中指最大化所选的执行计划探索价值最大值,是查询计划的查询代价,是优化器所选的最优执行计划的查询代价,表示当前执行计划的性能不低于当前最优估计代价的倍,最优化条件即在查询代价小于等于优化器所选的最优执行计划的查询代价的所有查询计划中,选择探索价值最大的查询计划作为需要执行的查询计划。权利要求书2/2 页3CN 117520385 A3一种基于探索价值和查询代价的数据库查询优化方法技术领域0001本发明涉及计算机技术领域,尤其涉及一种基于探索价值和查询代价的数据库查询优化方法。背景技术0002传统数据库查询优化技术通常依赖于查询计划生成器和成本估算器。这些方法的性能受到查询。

9、计划生成规则和统计信息的质量限制,尤其是在大量数据和复杂查询环境中,基于规则的错误统计信息可能导致查询优化器生成次优的查询计划,从而影响查询的执行效率。此外,传统的优化器是静态的且不具有学习性,导致其无法适应动态变化的查询负载和数据分布。因此,有必要提供一种更高效的方法来优化数据库查询。0003目前在数据库查询优化领域,机器学习技术已经成功用于查询优化中,例如基于神经网络的基数估计方法能够提供更准确的基数估计,它可以通过学习历史查询的基数使得优化器具有可学习性,从而使其对未来的查询选择更优的执行计划,提高查询的执行效率以及减少系统的资源消耗。但这种方法只满足了当前最优,即在选择执行计划时只保证。

10、当前查询执行最优,而没有考虑到未来查询的执行性能。而在真实的环境中,如云环境下,往往希望整个查询负载执行最优。例如,如果当前查询的一个查询计划虽然是次优的,但它的一些子计划在未来的多个查询中被重复的使用,那么这个查询计划的价值就远不止当前模型中的表现,因为执行该次优的查询可收集更多有效的历史数据,从而提高未来查询的执行效率。因此,急需一种对未来负载可知的查询优化技术。发明内容0004为了克服现有技术的不足,本发明提供一种基于探索价值和查询代价的数据库查询优化方法,使得查询优化不仅仅考虑当下的查询,更放眼于未来的查询,实现“预测”与“学习”的结合,通过负载预测来推断未来的查询模板分布,通过机器学。

11、习进行基数估计进而估计每个查询的查询代价,这种综合考虑当前性能和未来趋势的数据库查询优化方法将使数据库系统更具智能,更能适应动态环境,提供更高效的查询处理能力。0005本发明要解决的技术问题在于既克服传统数据库查询优化器不具有学习性的缺陷,又针对当前基于机器学习的优化器忽视未来查询的不足,提供了一种基于探索价值和查询代价的数据库查询优化技术,通过负载预测推断未来时间的查询模板分布和通过机器学习不断优化模型做查询代价估计的结合,实现了查询计划对未来和当下综合最优,提高了数据库查询在整体时间的效率。0006本发明解决其技术问题所采用的技术方案的具体步骤为:0007步骤1:数据库中的执行引擎将历史执。

12、行的执行计划以及执行计划所对应的真实基数数据存入缓存池中,接着利用回归模型对缓存池中的数据进行离线训练和建模,得到基数模型M;0008步骤2:优化器从数据库管理系统中获取当前的查询语句,优化器基于当前的查询说明书1/5 页4CN 117520385 A4语句生成对应的所有查询计划,并利用在步骤1训练完成的基数模型M和数据库本身的基数估计模块,对所有的查询计划进行基数估计,最后再采用数据库本身的代价估计模块对每个执行计划进行代价估计,从而得到每个查询计划的估计代价;0009步骤3:通过数据库管理系统执行查询操作的记录和日志,获取数据库管理系统的历史查询,历史查询包括历史执行的查询语句的代码和模板。

13、、查询操作执行所花费的时间及查询操作返回的结果数据,利用该历史查询进行未来查询的预测,得到查询模板分布P;0010步骤4:根据步骤2得到的所有查询计划,将每一个执行计划分解为若干个子执行计划,分别估计各个子计划节点对每个查询模板的提升度V(v1,v2,vi,vn),其中vi指子计划节点i对于查询模板pi的提升度,n是查询模版个数;0011步骤5:结合步骤3得到的查询模板分布P(p1,p2,pi,pn)和步骤4得到的提升度V(v1,v2,vi,vn),通过得到各个子计划节点的探索价值,其中为探索价值,Plan指各个子计划节点,如同代价估计一样,累加执行计划上的所有子计划节点的探索价值,得到该执行。

14、计划的探索价值,即:0012。0013其中,Query为执行计划;0014步骤6:根据最优化条件对所有查询计划进行筛选,得到最优的查询计划,即在保证所选执行计划的代价低于给定阈值的条件下,选择探索价值最大的执行计划,并将该查询计划发送给执行引擎。0015所述回归模型采用局部加权回归模型LWPR。0016所述步骤3中,查询都是基于查询模板生成,因此未来查询的预测等价于查询模板的分布,使用Markov模型得到查询模板分布P(p1,p2,pi,pn),其中pi指下一个查询可能服从的查询模板。0017所述未来查询的预测的步骤为:假设查询负载有n个查询模板,设下一个查询语句到来的时刻为t,时刻t之前的历。

15、史查询模板集合为Xt1,Xt2,Xt3,.,Xtm,其中Xt1是t1时刻的查询模板,利用训练的m阶Markov模型和历史查询,计算出t时刻的查询模板分布为P(p1,p2,pi,pn)。0018所述的计算某个子计划节点对各个查询模板的提升度V的步骤为:0019V(v1,v2,vi,vn),其中vi由子计划节点和第i个可能服从的查询模板pi的最近k个历史查询通过LWPR(Local Weighted Projection Regression)模型计算得到,LWPR模型是一种用于非线性回归和函数逼近的机器学习算法;具体的说,每个vi的计算过程如下:0020设第i个查询模板pi的历史查询为,其中表示。

16、查询模板pi的最近k个历史查询,LWPR模型具有M个感受野Receptive Field(RF)(RF1,RF2,RFM),M个感受野对应的中心点为C(c1,c2,cM);首先,利用Qi计算RF中心点C的分布Pi,然后,通过LWPR模型中每个RF的线性模型,计算每个线性模型的提升度Vi,Vi通过每个RF的线性模型的预测不可信度进行刻画;最后,得到。说明书2/5 页5CN 117520385 A50021所述的根据最优化条件对所有查询计划进行筛选,其中最优化条件为:00220023其中指最大化所选的执行计划探索价值最大值,是查询计划的查询代价,是优化器所选的最优执行计划的查询代价,表示当前执行计。

17、划的性能不低于当前最优估计代价的倍,最优化条件即在查询代价小于等于优化器所选的最优执行计划的查询代价的所有查询计划中,选择探索价值最大的查询计划作为需要执行的查询计划。0024本发明的有益效果在于:0025个性化优化:通过LWPR模型识别哪些查询计划的一部分经常被多个查询使用,从而实现了个性化的查询优化。这意味着系统可以更好地适应不同查询的执行模式,提高了查询性能。0026可学习性:使用机器学习回归模型对历史的查询计划和查询基数进行训练,建立随着数据更新不断进行增量学习的基数模型。0027负载预测:通过历史查询模板分布对未来查询模板进行预测,计算当前查询对未来预测查询模板的价值从而选择对未来查。

18、询最优的查询计划,减少了查询执行的不确定性,提高了性能。0028探索价值:本方法通过负载预测和机器学习的方法进行查询优化并提出了探索价值的概念,使得查询优化的目标并不局限于每个实时查询的查询代价,而是考虑到未来查询可能需要的一些连接操作以及当前查询对于未来查询的价值,实现了学习和预测的模式。0029实时性:机器学习的模型能够不断地根据提供的历史查询计划进行学习,系统可以根据新的执行情况进行动态优化,确保了查询的实时更新。0030资源节约:通过本方法可以更加准确地选择查询执行计划,系统可以更有效地利用硬件资源,降低了资源浪费,提高了性能和效率。0031本发明的查询方法使用负载预测和机器学习结合的。

19、技术,优化了传统学习只对当前的查询进行代价估计的策略,使得查询估计面向未来和当前的结合来选择最优的查询执行计划。本发明的查询方法提出的探索价值的定义,使得当前查询的查询计划对于未来预测的查询的价值能够具象化,进而为数据库查询优化提供更深入的见解和决策支持。附图说明0032图1为本发明一种基于探索价值和查询代价的数据库查询优化技术的流程示例图。0033图2为本发明的框架结构示例图。0034图3为本发明中通过历史查询计算概率分布Pi的示例图。0035图4为本发明中通过LWPR模型获得各个RF的提升度的示例图。说明书3/5 页6CN 117520385 A6具体实施方式0036下面结合附图和实施例对。

20、本发明进一步说明。0037一种基于探索价值和查询代价的数据库查询优化方法,具体步骤包括:数据库中的执行引擎将历史执行的数据存入缓存池中,接着利用回归模型对缓存池中的数据进行离线训练和建模,得到基数模型M;优化器从数据库管理系统中获取当前的查询语句,优化器会基于当前的查询语句生成对应的所有查询计划,并利用在步骤1训练完成的基数模型M对所有查询计划进行基数估计,最后使用传统的代价模型对基数估计的结果进行代价估计,得到每个查询计划的查询代价估计;获取数据库管理系统的历史查询模板分布,进行未来查询模板分布的预测;根据之前得到的所有查询计划,计算执行当前查询语句的查询计划X对当前查询模板的提升度V;结合。

21、之前得到的查询模板分布P(Xt)和各个查询模板的提升度V,得到当前查询语句的每个查询计划的探索价值;根据最优化条件对所有查询计划进行筛选,并将此需要执行的查询计划发送给执行引擎。0038图1为基于探索价值和查询代价的数据库查询优化技术的流程示例图,图2为本发明的框架结构示例图。如图1所示,该发明的方法包括步骤S101S106。0039步骤S101:数据库中的执行引擎将历史执行的执行计划以及这些历史执行计划相应的真实基数数据存入缓存池中,接着利用局部加权回归模型LWPR对缓存池中的数据进行离线训练和建模,得到基数模型M。0040步骤S102:优化器从数据库管理系统中获取当前的查询语句,优化器基于。

22、当前的查询语句生成对应的所有查询计划,并利用在步骤S101训练完成的基数模型M和数据库本身的基数估计模块,对所有的查询计划进行基数估计,最后再采用数据库本身的代价估计模块对每个执行计划进行代价估计,从而得到每个查询计划的估计代价;0041数据库的基数估计模块是数据库优化器中一个非常重要的组成部分,在数据库中,基数是指集合中不同元素的数量或唯一值的数量,基数估计用于估算一个数据集合中不同值的数量,而不是计算所有值的具体数量。因此,基数估计模块在数据库优化器中是用于估算唯一值数量(基数)的工具,比如使用统计技术(如直方图)或者概率估计算法(如HyperLogLog)进行估计来获得唯一值数量(基数)。

23、。0042数据库的代价估计模块在数据库的查询处理上非常关键,旨在评估执行查询操作的成本。数据库对于一个查询可能存在多种执行计划,需要根据不同执行计划的(估计)代价来比较执行计划的执行成本,并选择最佳的执行计划。代价估计模块以多种资源的形式对查询执行的代价进行度量,包括磁盘存取、执行一个查询所用的CPU时间,并行和分布式数据库系统中的通信代价。0043步骤S103:通过数据库管理系统执行查询操作的记录和日志获取数据库管理系统的历史查询,包括:历史执行的查询语句的代码和文本、查询操作执行所花费的时间以及查询操作返回的结果数据,利用该历史查询进行未来查询的预测:假设查询负载有n个查询模板,设下一个查。

24、询语句到来的时刻为t,时刻t之前的历史查询模板集合为Xt1,Xt2,Xt3,.,Xtm,其中Xt1是t1时刻的查询模板,利用训练的m阶Markov模型和历史查询,计算出t时刻的查询模板分布P(p1,p2,pi,pn)。0044步骤S104:根据步骤S102得到的所有查询计划,对于每一个查询计划可以分解为若干个子执行计划,子执行计划又由若干子计划节点构成,分别估计其各个子计划节点对说明书4/5 页7CN 117520385 A7每个查询模板的提升度V(v1,v2,vi,vn),其中vi指子计划节点对于查询模板pi的提升度,vi由查询计划的子计划节点和第i个查询模板pi的最近k个历史查询通过LWP。

25、R模型计算得到,其中LWPR模型是一种用于非线性回归和函数逼近的机器学习算法,设第i个查询模板pi的历史查询为,其中表示查询模板pi的最近k个历史查询,LWPR模型具有M个感受野Receptive Field (RF)(RF1,RF2,RFM),M个感受野对应的中心点为C(c1,c2,cM);首先,利用Qi计算RF中心点C的分布Pi,如图3所示,然后,通过LWPR模型中每个RF的线性模型,计算每个线性模型的提升度Vi,Vi通过每个RF的线性模型的预测不可信度进行刻画;最后,得到。0045本发明中通过历史查询计算概率分布Pi的示例如图3所示,通过LWPR模型获得各个RF的提升度的示例如图4所示。。

26、0046步骤S105:结合步骤S103得到的下一个查询的查询模板分布P(p1,p2,pi,pn)和步骤S104得到的各个子计划节点对于查询每个查询模板的提升度V(v1,v2,vi,vn),通过得到各个子计划节点的探索价值,其中代表本发明所提出的“探索价值”,Plan指各个子计划节点,如代价估计一样,累加执行计划上的所有子计划节点的探索价值,得到该执行计划的探索价值,即。0047步骤S106:根据最优化条件对所有查询计划进行筛选,得到最优的查询计划,即在保证所选执行计划的代价低于给定阈值的条件下,选择探索价值最大的执行计划,并将该查询计划发送给执行引擎,其中最优化条件为:00480049其中指最大化所选的执行计划探索价值最大值,是查询计划的查询代价,是优化器所选的最优执行计划的查询代价,表示当前执行计划的性能不低于当前最优估计代价的倍,最优化条件即在查询代价小于优化器所选的最优查询计划的查询代价的所有查询计划中选择探索价值最大的查询计划作为需要执行的查询计划。说明书5/5 页8CN 117520385 A8图1说明书附图1/3 页9CN 117520385 A9图2图3说明书附图2/3 页10CN 117520385 A10图4说明书附图3/3 页11CN 117520385 A11。

展开阅读全文
内容关键字: 基于 探索 价值 查询 代价 数据库 优化 方法
关于本文
本文标题:基于探索价值和查询代价的数据库查询优化方法.pdf
链接地址:https://www.zhuanlichaxun.net/pdf/14524852.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1