一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种数据库中数据的查询方法与流程

2021-10-20 00:23:00 来源:中国专利 TAG:数据库中 数据查询 信息检索 方法


1.本发明属于信息检索技术领域,涉及一种数据库中数据的查询方法。


背景技术:

2.在数据库中,物化视图是查询优化的重要手段,其主要通过避免重复计算来优化查询速度,在企业数据分析等联机分析处理场景中可以得到较好的优化效果。物化视图的主要原理是将中间查询的结果存储到磁盘上,在遇到相关的查询时可以避免重复计算而直接调用存储的结果,以节省大量的查询执行时间。如何设计和选择物化视图以较小的存储空间代价提供更大的优化效果是一个关键问题,针对该问题有大量的研究工作,但是目前仍存在较大的局限性,传统的启发式方法为候选物化视图设计评估函数,在迭代的过程中给更高评估分数的候选物化视图更高的选择概率,例如sigmod’18上的bigsubs算法。但是这种算法不能利用历史查询负载的经验因而求解效果不稳定。针对这个问题,一些研究者提出使用强化学习模型求解,将候选物化视图的选择状态表示为向量中的0和1,利用强化学习在历史经验中的学习能力提高求解效果,例如icde’20上的rlview算法。但是这些方法的泛化性受限于固定的状态表示向量设计,当在新的查询负载中候选物化视图的数量发生改变时,整个模型都需要重新训练,而训练模型的代价较大。


技术实现要素:

3.本发明的目的在于提出一种数据库中数据的查询方法,自动为查询负载生成相应的物化视图,设计一个基于学习的自治物化视图管理机制,根据查询负载自动生成物化视图,在不超过存储空间限制的条件下使用物化视图优化查询负载,以节约查询时间。
4.本发明提出的数据库中数据的查询方法,包括以下步骤:
5.(1)向数据库输入一个查询集合;
6.(2)将步骤(1)中的查询集合的多个查询语句分别转换为多个查询计划树,将多个查询计划树合并,得到一个查询计划图,从该查询计划图中挖掘出待选物化视图集合;
7.(3)构建一个用于步骤(2)的待选物化视图收益的估计模型,包括以下步骤:
8.(3

1)分别对数据库中的多个查询计划树的节点和步骤(2)的待选物化视图集合的多个查询计划树的节点进行编码;
9.(3

2)构建待选物化视图收益的估计模型中的第一循环神经网络,分别将步骤(3

1)中数据库查询计划树的节点编码输入到该第一循环神经网络中,得到与编码相对应的查询的第一预测查询时间、预测查询结果占用磁盘空间以及该编码的嵌入向量;
10.(3

3)构建待选物化视图收益的估计模型中的第二循环神经网络,将步骤(3

1)中待选物化视图的查询计划树的节点编码和步骤(3

2)中的相应编码的嵌入向量输入第二循环神经网络,得到步骤(3

1)数据库中查询的查询计划树的第二预测查询时间以及查询和待选物化视图的总嵌入向量,将步骤(3

2)中的第一预测查询时间减去第二预测查询时间,得到待选物化视图的收益,得到选物化视图收益的估计模型;
11.(4)构建一个待选物化视图的选择模型,将步骤(3

2)的预测查询结果占用磁盘空间和步骤(3

3)的待选物化视图的收益以及查询和待选物化视图的总嵌入向量输入待选物化视图的选择模型中,输出得到目标物化视图集合;
12.(5)根据步骤(3)的待选物化视图收益估计模型,对步骤(4)的目标物化视图集合中的物化视图的收益进行预测,选择收益最大的物化视图,根据该物化视图对步骤(1)查询集合中的查询语句进行改写,遍历步骤(1)查询集合中的所有查询,重复本步骤,得到查询集合中的所有查询改写后的查询语句;将改写后的查询语句在数据库中进行查询,将对应的查询结果返回给用户,实现数据库中数据的查询。
13.本发明提出的数据库中数据的查询方法,其特点和优点是:
14.本发明的数据库中数据的查询方法,自动根据数据库中的查询集合,挖掘出合适的物化视图,并对查询进行改写以缩短查询时间,将本来需要数据库管理员完成的工作通过算法自动完成,提高了管理员的工作效率。本发明使用的待选物化视图收益估计模型相比传统估计方法估计的更加准确,同时使用注意力机制算法来进一步提高准确度。本发明在选择目标物化视图时使用马尔可夫决策问题进行建模并使用深度学习方法求解,使得到的解更接近于最优解,同时本发明设计的结合嵌入向量的状态表示向量提高了模型泛化性,即模型在迁移到新问题时不需要重复耗时的训练过程,提高了方法的效率。
附图说明
15.图1为本发明所述的数据库中物化视图的自治管理方法的流程框图。
16.图2为本发明方法涉及的待选物化视图收益的估计模型的框架图。
17.图3为本发明方法涉及的待选物化视图的选择模型的框架图。
18.图4为本发明方法的实施例中查询语句集合示意图。
19.图5为本发明的实施例中查询计划树合并示意图。
20.图6为本发明的实施例中待选物化视图集合示意图。
具体实施方式
21.本发明提出的数据库中数据的查询方法,其流程框图如图1所示,包括以下步骤:
22.(1)向数据库输入一个查询集合;查询集合为用户输入的多个查询语句的集合;
23.(2)将步骤(1)中的查询集合的多个查询语句分别转换为多个查询计划树(查询计划指的是结构化查询语言(以下简称sql)经过查询解析规划生成的查询步骤,查询计划可以表示为查询计划树结构,查询计划树中的节点表示查询计划中的操作节点),将多个查询计划树合并(查询计划树合并是指,自底向上地分别对多个查询计划树的节点进行比较,将相同的或者相似度较高的节点合并为一个节点;每次合并两个节点后,对其父亲节点进行比较和合并,直到合并所有可以合并的节点,得到一个查询计划图),得到一个查询计划图,从该查询计划图中挖掘出待选物化视图集合;(挖掘是指,在查询计划图中,自底向上地为以每个节点为根的子树打分,子树出现频数越高、子树执行时间越长、子树执行结果占用空间越小,则得分越高;接着从所有的子树中选出与得分高的一定数量的子树相对应的子查询作为待选物化视图。)
24.(3)构建一个用于步骤(2)的待选物化视图收益的估计模型,待选物化视图收益的
估计模型的框架如图2所示,包括以下步骤:
25.(3

1)分别对数据库中的多个查询计划树的节点和步骤(2)的待选物化视图集合的多个查询计划树的节点进行编码;
26.(3

2)构建待选物化视图收益的估计模型中的第一循环神经网络,分别将步骤(3

1)中数据库查询计划树的节点编码输入到该第一循环神经网络中,得到与编码相对应的查询的第一预测查询时间、预测查询结果占用磁盘空间以及该编码的嵌入向量(嵌入向量是指,将一个查询和其对应的物化视图集合表示为一个高维向量,若两次查询得到的两个高维向量距离较短,则表示两次查询结果相似),
27.(3

3)构建待选物化视图收益的估计模型中的第二循环神经网络,将步骤(3

1)中待选物化视图的查询计划树的节点编码和步骤(3

2)中的相应编码的嵌入向量输入第二循环神经网络,得到步骤(3

1)数据库中查询的查询计划树的第二预测查询时间以及查询和待选物化视图的总嵌入向量,将步骤(3

2)中的第一预测查询时间减去第二预测查询时间,得到待选物化视图的收益,得到选物化视图收益的估计模型;
28.(4)构建一个待选物化视图的选择模型,待选物化视图的选择模型的框架如图3所示,将步骤(3

2)的预测查询结果占用磁盘空间和步骤(3

3)的待选物化视图的收益以及查询和待选物化视图的总嵌入向量输入待选物化视图的选择模型中,输出得到目标物化视图集合;
29.(5)根据步骤(3)的待选物化视图收益估计模型,对步骤(4)的目标物化视图集合中的物化视图的收益进行预测,选择收益最大的物化视图,根据该物化视图对步骤(1)查询集合中的查询语句进行改写,遍历步骤(1)查询集合中的所有查询,重复本步骤,得到查询集合中的所有查询改写后的查询语句;将改写后的查询语句在数据库中进行查询,将对应的查询结果返回给用户,实现数据库中数据的查询。
30.上述数据库中数据的查询方法中,所述的步骤(3)所述的第一循环神经网络的构建和训练,其框架如图2所示,包括以下步骤:
31.(1)构建第一循环神经网络,第一循环神经网络由嵌入神经网络、第一门控循环单元网络、第一输出神经网络和第二输出神经网络组成,所述的嵌入神经网络为一个单层神经网络,嵌入神经网络的输入层大小为135,输出层大小为128;所述的第一门控循环单元网络包含更新门和重置门两个单层神经网络,更新门和重置门的输入层大小都为384(128 256),输出层大小都为256;所述的第一输出神经网络为两层全连接神经网络,输入层大小为256,隐藏层大小为64,输出层大小为1,所述的第二输出神经网络为两层全连接神经网络,输入层大小为256,隐藏层大小为64,输出层大小为1;
32.(2)对步骤(1)的第一循环神经网络进行训练,即,从数据库中划分出80%的查询计划树作为训练集,将训练集的节点编码输入嵌入神经网络,嵌入神经网络输出得到表示向量;将表示向量输入第一门控循环单元网络,第一门控循环单元网络输出得到隐藏向量,将隐藏向量分别输入第一输出神经网络和第二输出神经网络,第一输出神经网络和第二输出神经网络分别输出得到第一预测查询时间和预测查询结果占用磁盘空间,将第一预测查询时间和预测查询结果占用磁盘空间记为y1*;将训练集中的查询计划树在数据库中实际执行所得到的查询时间和查询结果占用磁盘空间作为预测目标,记为y1,用作为平均
相对误差,更新网络参数使平均相对误差尽量小,重复本步骤直到平均相对误差小于设定阈值,得到第一循环神经网络的参数;
33.(3)对步骤(2)训练得到的第一循环神经网络进行验证,即,将数据库中其余20%的查询计划树作为验证集,将验证集的节点编码输入步骤(2)的第一循环神经网络,得到第一预测查询时间和预测查询结果占用磁盘空间,记为y2*,将y2*与验证集的真实查询时间和查询结果占用磁盘空间,记为y2,用作为平均相对误差;
34.(4)重复步骤(2)和步骤(3),直到平均相对误差小于设定阈值时,得到第一循环神经网络。
35.上述数据库中数据的查询方法中,所述的步骤(3)的第二循环神经网络的构建和训练,其框架如图2所示,包括以下步骤:
36.(1)构建第二循环神经网络,第二循环神经网络由嵌入神经网络、线性神经网络、第二门控循环单元网络和第三输出神经网络组成,所述的嵌入神经网络为一个单层神经网络,嵌入神经网络的输入层大小为135,输出层大小为128;所述的线性神经网络是单层全连接神经网络,输入层大小为384(128 256),输出层大小为128;所述的第二门控循环单元网络包含更新门和重置门两个单层神经网络,更新门和重置门的输入层大小分别为384(128 256),输出层大小分别为256;所述的第三输出神经网络为两层全连接神经网络,输入层大小为256,隐藏层大小为64,输出层大小为1;
37.(2)对步骤(1)的第二循环神经网络进行训练,即,从数据库中划分出80%的待选物化视图的查询计划树作为训练集,将训练集的节点编码输入嵌入神经网络,嵌入神经网络输出得到表示向量;将该表示向量与数据库查询计划树的节点编码嵌入向量连接后输入线性神经网络,线性神经网络输出得到稠密向量,根据注意力机制算法,计算稠密向量与第一循环神经网络的第一门控循环单元输出的所有隐藏向量之间的余弦距离,将余弦距离的大小归一化为权重系数,根据权重系数对第一循环神经网络的第一门控循环单元输出的所有隐藏向量进行加权求和,将求和结果作为新的表示向量;将新的表示向量输入到第二门控循环单元网络,第二门控循环单元网络输出得到隐藏向量,将该隐藏向量作为查询和待选物化视图的总嵌入向量;将隐藏向量输入第三输出神经网络,第三输出神经网络输出数据库中查询的查询计划树的第二预测查询时间,将第二预测查询时间记为z1*;根据训练集中待选物化视图,对数据库中查询的查询计划树进行改写,得到新查询计划树在数据库中实际执行所得到的查询时间,记为z1,将z1作为预测目标,用作为平均相对误差,更新网络参数使平均相对误差尽量小,重复本步骤,直到平均相对误差小于设定阈值,得到第二循环神经网络的参数;
38.(3)对步骤(2)训练得到的第二循环神经网络进行验证,即,将数据库中其余20%的待选物化视图的查询计划树作为验证集,将验证集的节点编码输入步骤(2)的第二循环神经网络,得到第二预测查询时间,记为z2*,将z2*与验证集的真实查询时间记为z2,用作为平均相对误差;
39.(4)重复步骤(2)和步骤(3),直到平均相对误差小于设定阈值时,得到第二循环神经网络。
40.上述数据库中数据的查询方法中,所述的步骤(4)中待选物化视图的选择模型的构建和训练,其框架如图3所示,包括以下步骤:
41.(1)设定物化视图选择问题为整数规划问题,整数规划的约束条件为目标物化视图的预测查询结果占用磁盘空间之和不超过数据库的总磁盘空间,整数规划的目标为目标物化视图收益之和为最大;
42.(2)将步骤(1)中的物化视图选择问题转化为马尔可夫决策过程,即,查询集合和待选物化视图组成多个查询

待选物化视图对,记为(q
i
,v
i
),每个(q
i
,v
i
)的选择状态表示是否选择该待选物化视图改写相应查询,所有(q
i
,v
i
)的选择状态组成马尔可夫决策过程的状态空间,单个(q
i
,v
i
)的选择操作,组成马尔可夫决策过程的决策空间;
43.(3)构建一个回报估计网络,回报估计网络为一个多层全连接神经网络,回报估计网络的输入为马尔可夫决策过程的状态空间中的状态和决策空间中的决策,输出为决策空间中每个决策的回报,回报估计网络的输入层大小为263,第一隐藏层大小为128,第二隐藏层大小为64,第三隐藏层大小为16,输出层大小为2;
44.(4)对步骤(2)的马尔可夫决策过程求解,使步骤(1)中的待选物化视图收益之和最大,包括以下步骤:
45.(4

1)向待选物化视图收益的估计模型输入数据库中的查询集合和待选物化视图,输出得到预测查询结果占用磁盘空间、待选物化视图的收益、查询和待选物化视图的总嵌入向量以及当前已占用磁盘空间比例,将得到的预测查询结果占用磁盘空间、待选物化视图的收益、查询和待选物化视图的总嵌入向量以及当前已占用磁盘空间比例构建成一个状态表示向量;
46.(4

2)将步骤(4

1)的状态表示向量作为马尔可夫决策过程中的表示状态的状态表示向量,初始化时,所有(q
i
,v
i
)选择状态为不选择,设定迭代次数,将该初始状态的状态表示向量输入步骤(3)的回报估计网络中,输出得到步骤(2)的马尔可夫决策过程的决策空间中各决策的回报,将回报最大的决策应用到状态中,得到相对应的新状态,将该新状态作为当前状态,将当前状态的真实回报作为回报估计网络的预测目标,更新回报估计网络的参数,重复本步骤,直到完成迭代次数,得到待选物化视图的选择模型。
47.本发明提出的数据库中数据的查询方法,其特点在于使用基于学习的物化视图收益估计模型估计物化视图收益并生成嵌入向量,用结合嵌入向量的灵活的强化学习状态向量设计方法在维持强化学习模型表达能力的同时提高强化学习模型的泛化性。因此,如何设计这样的模型以及如何训练和使用这样的模型,是本发明的主要发明点。
48.本发明方法中的查询负载,是指数据库中一段时间内一系列查询的集合,即一系列sql(结构化查询语言)语句的集合。其中的物化视图,是指数据库中一种优化查询工具,该工具将一些查询过程中的中间结果存储到磁盘上,以备查询的反复调用。
49.本发明方法中的生成物化视图,是指基于查询负载建立的查询计划图,然后使用视图挖掘算法生成出若干候选视图;其中的查询计划指的是sql语句经过查询优化器解析、规划生成的查询步骤,可以表示为查询计划树结构,查询计划树中的节点表示查询计划中的操作节点;查询计划图指的是查询负载中的查询计划树通过查询计划树合并算法得到的森林结构。
50.本方法中涉及的物化视图收益估计,指的是对查询和物化视图进行编码,再用物
化视图收益估计模型(encoder

reducer)估计物化视图的优化收益;同时对该查询和物化视图嵌入到语义空间中表示为一个高维向量。物化视图收益估计模型使用两步训练方法进行训练。
51.本发明方法中的编码,指的是将查询和物化视图的查询计划树中的每个节点中的操作符、操作数、谓词等元素用独热编码方法编码为可以输入到神经网络模型的向量形式。其中的优化收益,指的是一个查询使用一个物化视图集合进行改写优化后可以节约的执行时间。其中的嵌入,指的是将一个查询和其对应的物化视图集合表示为语义空间中的一个高维向量,在该空间中两个向量相近代表其表示的两组查询和物化视图相似。
52.本发明方法中的物化视图选择,指的是对物化视图选择问题进行环境建模后,使用物化视图选择模型(erddqn)求近似解,解得对哪些候选物化视图进行物化能够在当前的查询负载获得最大的总收益。物化视图选择模型使用智能体和环境进行交互的方法训练。
53.本发明方法中的物化视图选择问题,指的是给定查询负载、视图挖掘算法挖掘出的候选物化视图以及磁盘储存空间限制,如何选择候选物化视图进行物化,使得在物化结果不超过存储空间限制的条件下,物化视图对查询负载的总优化效果最大。
54.本方法中的基于物化视图的查询重写,指的是一种高效的为查询寻找相应的物化视图进行改写优化以达到最大优化效果的方法。对于一个查询,先利用查询关联的表对物化视图进行一轮筛选,过滤掉无关的物化视图,接着对剩下的物化视图进行枚举并使用物化视图收益估计模型估计收益,选择最大的收益方案。在枚举过程中采用一边选择物化视图一边输入到收益估计模型的方法,减少模型的重复估计,提高方法效率。
55.以下介绍本发明方法的一个实施例:
56.设定本发明方法数据的待选物化视图收益估计模型和待选物化视图选择模型已经提前构建和训练,数据库中数据的查询过程如下:
57.(1)向数据库输入一个包括三条查询语句的查询集合{q1,q2,q3},如图4所示;
58.(2)将步骤(1)中的查询集合的多个查询语句分别转换为多个查询计划树,如图4所示,查询计划树中的包括了查询计划中的操作节点;将q1,q2,q3的查询计划树合并得到一个查询计划图,q1,q2,q3的查询计划树中相同结构的子树在查询计划图中被合并成同一个子树,如图5中间的虚线框部分所示。从查询计划图中挖掘出待选物化视图集合,即,为查询图中以每个节点为根的子树打分,若子树出现频数越高(图5中间的虚线框部分由q1,q2,q3查询计划图中的三个子树合并而来,则频数为3)、执行时间越长、执行结果占用空间越小,则分数越高,选出得分高的一定数量的子树相对应的子查询作为挖掘出的待选物化视图集合。该查询计划图中挖掘出的待选物化视图集合为{v1,v2,v3},如图6所示;
59.(3)将{q1,q2,q3}和{v1,v2,v3}输入待选物化视图收益估计模型,分别输出得到的v1,v2,v3的预测收益、预测查询结果占用磁盘空间以及查询和待选物化视图的总嵌入向量,包括以下步骤:
60.(3

1)分别对q1,q2,q3的查询计划树的节点和v1,v2,v3的查询计划树的节点进行独热编码,编码的节点信息包括节点操作类型、节点操作的表名、节点的谓词的表达式,编码得到的向量长度为135;
61.(3

2)分别将q1,q2,q3的查询计划树的节点编码输入到训练好的待选物化视图收益估计模型的第一循环神经网络中,得到与编码相对应的查询的第一预测查询时间、预测
查询结果占用磁盘空间以及该编码的嵌入向量,嵌入向量长度为256;
62.(3

3)将步骤(3

1)中的v1的查询计划树的节点编码和q1在步骤(3

2)中的编码的嵌入向量输入第二循环神经网络,得到步骤(3

1)q1的查询计划树的第二预测查询时间以及查询和待选物化视图的总嵌入向量,总嵌入向量长度为256;将步骤(3

2)中的第一预测查询时间减去第二预测查询时间,得到v1对于q1的收益;重复本步骤遍历其余待选物化视图v2,v3的查询计划树,得到待选物化视图集合的所有查询计划树的收益以及查询和待选物化视图的总嵌入向量;
63.(4)将步骤(3)得到的{v1,v2,v3}中每个待选物化视图的预测收益、预测查询结果占用磁盘空间以及查询和待选物化视图的总嵌入向量输入待选物化视图的选择模型,输出目标物化视图集合,包括以下步骤:
64.(4

1)设定物化视图选择问题为整数规划问题,整数规划的约束条件为目标物化视图的预测查询结果占用磁盘空间之和不超过数据库的总磁盘空间,整数规划的目标为目标物化视图收益之和为最大;
65.(4

2)将步骤(4

1)中的物化视图选择问题转化为马尔可夫决策过程,即,查询集合和待选物化视图组成多个查询

待选物化视图对,记为(q
i
,v
i
),每个(q
i
,v
i
)的选择状态表示是否选择该待选物化视图改写相应查询,所有(q
i
,v
i
)的选择状态组成马尔可夫决策过程的状态空间,单个(q
i
,v
i
)的选择操作,组成马尔可夫决策过程的决策空间;
66.(4

3)对步骤(4

2)的马尔可夫决策过程求解,使步骤(4

1)中的待选物化视图收益之和最大的策略,即,初始化时,所有(q
i
,v
i
)选择状态为不选择,设定迭代次数,在迭代中,将回报最大的决策应用到状态中,得到相对应的新状态作为当前状态,重复本步骤,直到完成迭代次数,同时根据迭代次数完成时的当前状态中(q1,v1)、(q2,v1)、(q3,v2)被选择,得到目标物化视图集合{v1,v2};
67.(5)根据步骤(3)的待选物化视图收益估计模型,对步骤(4)的目标物化视图集合{v1,v2}中的物化视图的收益进行预测,选择收益最大的物化视图,根据该物化视图对步骤(2)查询集合中的查询进行改写,遍历步骤(2)查询集合中的所有查询,重复本步骤,得到查询集合中的所有查询改写后的查询语句;将改写后的查询语句在数据库中进行查询,将对应的查询结果返回给用户,实现数据库中物化视图的自治管理。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜