一种生成新虚拟视图加速计算任务的方法技术

技术编号:38986290 阅读:8 留言:0更新日期:2023-10-07 10:17
本发明专利技术公开了一种生成新虚拟视图加速计算任务的方法,包括结合深度学习和视图生成算法,自动学习和发现不同视图之间的关系,并自动生成可以共享计算是typo;本发明专利技术结合深度学习和视图生成算法,可以自动学习和发现不同视图之间的关系,并自动生成可以共享计算是虚拟视图,得到更加优质的查询计划,从而显著提高查询性能和减少计算时间,新的计算方法解决传统的数据库优化器生成虚拟视图存在的缺陷,大幅拓展可能的虚拟视图生成方案,提高查询计划的性能,降低查询计划的开销。降低查询计划的开销。降低查询计划的开销。

【技术实现步骤摘要】
一种生成新虚拟视图加速计算任务的方法


[0001]本专利技术涉及数据库
,具体为一种生成新虚拟视图加速计算任务的方法。

技术介绍

[0002]目前现有的数据库优化器是通过视图合并算法生成虚拟视图来加速计算任务,但是传统的视图合并算法并不能保证生成的查询计划是最优的,而且,虚拟视图的使用可能会增加查询优化的时间和开销,当涉及多个虚拟视图时,可能会出现查询计划的复杂性和可读性差的问题,在使用虚拟视图的是需要权衡优缺点,根据具体的情况进行选择,在使用虚拟视图的时候要避免过度优化,以免引入不必要的复杂性和开销,为此我们提出一种生成新虚拟视图加速计算任务的方法用于解决上述问题。

技术实现思路

[0003]本专利技术的目的在于提供一种生成新虚拟视图加速计算任务的方法,以解决传统的数据库优化器生成虚拟视图查询性能较低和优化时间长问题。
[0004]为实现上述目的,本专利技术提供如下技术方案:一种生成新虚拟视图加速计算任务的方法,包括以下步骤:
[0005]步骤1:视图嵌入层接收若干视图帧,计算出视图帧的视图向量,并将视图向量输入到图卷积神经网络层;
[0006]步骤2:图卷积神经网络层构建若干视图向量之间的关系图,并依据关系图计算出视图合并分组,并输入到视图合并层;
[0007]步骤3:视图合并层计算出虚拟视图候选集合输入到代价模型;
[0008]步骤4:代价模型计算出最优虚拟视图合集和物理执行计划;
[0009]步骤5:将代价模型输出的物理执行计划输入到数据库系统中,并改写数据库系统原本的执行计划,数据库系统执行改写之后的物理计划,得到实际执行的计算资源和性能开销的参数;
[0010]步骤6:将实际执行计划得到的参数作为新的训练集,新的训练集再迭代代价模型。
[0011]优选的,视图嵌入层由嵌入层和RNN编码器构建组成,视图嵌入层输入视图帧,输出一个固定长度的向量;
[0012]嵌入层:将输入的视图序列转化为d维的向量,并输入到RNN编码器中;
[0013]RNN编码器:共有L层,每层包含了门控循环单元,将最后一层门控循环单元的状态作为输出。
[0014]优选的,图卷积神经网络层捕捉不同视图之间依赖关系具体操作如下:
[0015]将视图向量表示为节点,节点之间的联系表示为边,边根据类型赋予权重,每个节点聚合邻近节点信息,根据每个节点的最终特征向量组成视图合并分组。
[0016]优选的,边的类型包括属于同一个执行计划并构成冲突、彼此共享部分子计算、一
个视图包含另一个视图子计算部分。
[0017]优选的,视图合并层构建与RNN编码器相反的解码器,解码器将图卷积神经网络层输出的视图合并分组解码为候选视图。
[0018]优选的,代价模型的视图选择方法具体操作如下:
[0019]代价函数cost(Q,ViewSet),其中Q为查询语句,ViewSet=0,1}
|View|
,View为虚拟视图候选集合,通过计算函数cost(Q,ViewSet)得到该查询语句Q整体的最小的查询代价和对应的虚拟视图候选集合。
[0020]优选的,计算cost(Q,ViewSet)同时,将查询语句Q的子查询替换为替换为虚拟视图,利用代价模型计算改写后的查询计划的代价。
[0021]优选的,将数据库系统原本的查询执行计划替换为改写后的查询计划,数据库系统执行改写之后的查询计划得到系统平均响应时间、CPU运行时间、IO读写时间以及内存消耗数据,将得到的性能参数作为性能指标,在不同的运行环境中赋予性能指标不同的权重,引导代价模型选择更优的虚拟视图。
[0022]优选的,一种生成新虚拟视图加速计算任务的装置,包括存储器和一个或多个处理器,所述存储器中存储有可执行代码,所述一个或多个处理器执行所述可执行代码时,用于实现所述的一种生成新虚拟视图加速计算任务的方法。
[0023]优选的,一种计算机可读存储介质,其特征在于:其上存储有程序,该程序被处理器执行时,实现所述的一种生成新虚拟视图加速计算任务的方法
[0024]与现有技术相比,本专利技术的有益效果是:
[0025]结合深度学习和视图生成算法,可以自动学习和发现不同视图之间的关系,并自动生成可以共享计算是typo,得到更加优质的查询计划,从而显著提高查询性能和减少计算时间,新的计算方法解决传统的数据库优化器生成虚拟视图存在的缺陷,大幅拓展可能的虚拟视图生成方案,提高查询计划的性能,降低查询计划的开销。
附图说明
[0026]图1为本专利技术流程原理示意图;
[0027]图2为本专利技术实施例中15个不同的原始视图构建的关系图;
[0028]图3为本专利技术实施例中通过图卷积神经网络层进行的分组图;
[0029]图4为本专利技术一种生成新虚拟视图加速计算任务的装置所在任意具备数据处理能力的设备的一种硬件结构图。
具体实施方式
[0030]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0031]具体的,虚拟视图是一种在查询优化器中生成的中间结果,是一个虚拟的表,用于存储查询的部分结果,传统视图合并算法生成虚拟视图步骤如下:
[0032]a、识别查询中的视图,将其展开为基础表的组合;
[0033]b、识别查询中的重复子查询,并将其替换为虚拟视图;
[0034]c、将多个虚拟视图合成一张更大的虚拟视图;
[0035]d、将虚拟视图转换为物化视图;
[0036]通过使用虚拟视图,优化器可以减少查询的运行时间和开销,但是,虚拟视图也存在一些缺陷;首先,视图合并算法并不总是能够生成最优的查询计划,其次,虚拟视图的使用可能会增加查询优化的时间和开销,此外,当查询涉及多个虚拟视图时,可能会出现查询计划的复杂性和可读性差的问题。
[0037]参考图1,一种生成新虚拟视图加速计算任务的方法,包括以下步骤:
[0038]步骤1:视图嵌入层接收若干视图帧,计算出视图帧的视图向量,并将视图向量输入到图卷积神经网络层;
[0039]步骤2:图卷积神经网络层构建若干视图向量之间的关系图,并依据关系图计算出视图合并分组,并输入到视图合并层;
[0040]步骤3:视图合并层计算出虚拟视图候选集合输入到代价模型;
[0041]步骤4:代价模型计算出最优虚拟视图合集和物理执行计划;
[0042]步骤5:将代价模型输出的物理执行计划输入到数据库系统中,并改写数据库系统原本的执行计划,数据库系统执行改写之后的物理计划,得到实际执行的计算资源和性能开销的参数;
[0043]步骤6:将实际执行计划得到的参数作为新的训练集,新的训练集再迭本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种生成新虚拟视图加速计算任务的方法,其特征在于:包括以下步骤:步骤1:视图嵌入层接收若干视图帧,计算出视图帧的视图向量,并将视图向量输入到图卷积神经网络层;步骤2:图卷积神经网络层构建若干视图向量之间的关系图,并依据关系图计算出视图合并分组,并输入到视图合并层;步骤3:视图合并层计算出虚拟视图候选集合输入到代价模型;步骤4:代价模型计算出最优虚拟视图合集和物理执行计划;步骤5:将代价模型输出的物理执行计划输入到数据库系统中,并改写数据库系统原本的执行计划,数据库系统执行改写之后的物理计划,得到实际执行的计算资源和性能开销的参数;步骤6:将实际执行计划得到的参数作为新的训练集,新的训练集再迭代代价模型。2.根据权利要求1所述的一种生成新虚拟视图加速计算任务的方法,其特征在于:视图嵌入层由嵌入层和RNN编码器构建组成,视图嵌入层输入视图帧,输出一个固定长度的向量;嵌入层:将输入的视图序列转化为d维的向量,并输入到RNN编码器中;RNN编码器:共有L层,每层包含了门控循环单元,将最后一层门控循环单元的状态作为输出。3.根据权利要求1所述的一种生成新虚拟视图加速计算任务的方法,其特征在于:图卷积神经网络层捕捉不同视图之间依赖关系具体操作如下:将视图向量表示为节点,节点之间的联系表示为边,边根据类型赋予权重,每个节点聚合邻近节点信息,根据每个节点的最终特征向量组成视图合并分组。4.根据权利要求3所述的一种生成新虚拟视图加速计算任务的方法,其特征在于:边的类型包括属于同一个执行计划并构成冲突、彼此共享部分子计算、一个视图包含另一个视图子计算部分。5.根据权利要求2所述的一种生成新虚拟视图加速计算任务的方法,其特征在于:...

【专利技术属性】
技术研发人员:吕可凡吴金鹏欧阳哲官建军
申请(专利权)人:杭州云之重器科技有限公司
类型:发明
国别省市:

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

1