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

一种查询调度方法及查询调度器与流程

2022-06-22 13:37:25 来源:中国专利 TAG:


1.本发明涉及计算机技术领域,更具体的,涉及一种查询调度方法及查询调度器。


背景技术:

2.在数据库系统中,查询是其主要的工作负载,查询执行效率的高低决定数据库运行性能的优劣。
3.在联机分析型数据库系统中,当查询单独运行时,其响应时间为几分钟到几小时不等。但是当一个单独运行时响应时间较长的查询加入查询组合时,其响应时间会更长,延长了其它查询的运行时间,持续消耗数据库系统资源。在某些情况下,甚至会出现查询运行“死锁”的现象。如果数据库管理员终止该查询,既不能得到该批次查询的运行结果,也浪费了数据库资源,如果选择继续等待,数据库管理员并不能知道这些查询多久运行完成,整个操作处于“失控”状态。
4.因此,在联机分析型数据库系统中,对于一批查询,如何通过查询调度提高数据库运行性能成为本领域亟待解决的技术问题。


技术实现要素:

5.有鉴于此,本发明提供了一种查询调度方法及查询调度器,实现查询优化调度,有效提高数据库运行性能。
6.为了实现上述发明目的,本发明提供的具体技术方案如下:
7.一种查询调度方法,包括:
8.根据候选查询集中每个查询的单独运行响应时间以及紧急程度确定每个查询的优先级,并将高优先级的查询加入查询空间;
9.分别确定所述查询空间中每个查询加入查询队列所构成的查询组合所受查询交互;
10.将查询组合所受查询交互最小所对应的查询加入查询队列,并返回执行分别确定所述查询空间中每个查询加入查询队列所构成的查询组合所受查询交互,直到所述查询空间中所有查询都加入查询队列。
11.可选的,所述根据候选查询集中每个查询的单独运行响应时间以及紧急程度确定每个查询的优先级,并将高优先级的查询加入查询空间,包括:
12.获取所述候选查询集中的每个查询的单独运行响应时间;
13.根据预先设定的单独运行响应时间与查询大小的对应关系,确定所述候选查询集中的每个查询的查询大小;
14.获取所述候选查询集中的每个查询的紧急程度量化值;
15.计算所述候选查询集中的每个查询的查询大小与紧急程度量化值的和值,将和值小于预设值的查询确定为高优先级,并将高优先级的查询加入所述查询空间。
16.可选的,获取所述候选查询集中的每个查询的单独运行响应时间,包括:
17.分别确定所述候选查询集中的每个查询是否属于历史查询;
18.若属于历史查询,根据历史查询集确定该查询的单独运行响应时间;
19.若不属于历史查询,调用预先构建的响应时间预测模型,预测该查询的单独运行响应时间。
20.可选的,所述分别确定所述查询空间中每个查询加入查询队列所构成的查询组合所受查询交互,包括:
21.针对所述查询空间中每个查询,根据数据库的并行度,确定该查询加入查询队列所构成的查询组合以及与该查询对应的并行执行查询对;
22.确定所述并行执行查询对执行时该查询的并行响应时间;
23.依据该查询的并行响应时间与单独运行响应时间的比值,以及该查询的单独运行响应时间与查询组合中所有查询的单独运行响应时间之和的比值,确定该查询加入查询队列所构成的查询组合所受查询交互。
24.可选的,确定所述并行执行查询对执行时该查询的并行响应时间,包括:
25.确定所述并行执行查询对是否属于历史查询;
26.若属于历史查询,根据历史查询集确定所述并行执行查询对的并行响应时间;
27.若不属于历史查询,运行所述并行执行查询对,获取所述并行执行查询对的并行响应时间。
28.一种查询调度器,包括:
29.查询空间确定单元,用于根据候选查询集中每个查询的单独运行响应时间以及紧急程度确定每个查询的优先级,并将高优先级的查询加入查询空间;
30.查询交互确定单元,用于分别确定所述查询空间中每个查询加入查询队列所构成的查询组合所受查询交互;
31.查询顺序确定单元,用于将查询组合所受查询交互最小所对应的查询加入查询队列,并触发所述查询交互确定单元,直到所述查询空间中所有查询都加入查询队列。
32.可选的,所述查询空间确定单元,包括:
33.响应时间获取子单元,用于获取所述候选查询集中的每个查询的单独运行响应时间;
34.查询大小确定子单元,用于根据预先设定的单独运行响应时间与查询大小的对应关系,确定所述候选查询集中的每个查询的查询大小;
35.紧急程序获取子单元,用于获取所述候选查询集中的每个查询的紧急程度量化值;
36.查询空间确定子单元,用于计算所述候选查询集中的每个查询的查询大小与紧急程度量化值的和值,将和值小于预设值的查询确定为高优先级,并将高优先级的查询加入所述查询空间。
37.可选的,所述响应时间获取子单元,具体用于:
38.分别确定所述候选查询集中的每个查询是否属于历史查询;
39.若属于历史查询,根据历史查询集确定该查询的单独运行响应时间;
40.若不属于历史查询,调用预先构建的响应时间预测模型,预测该查询的单独运行响应时间。
41.可选的,所述查询交互确定单元,包括:
42.查询组合确定子单元,用于针对所述查询空间中每个查询,根据数据库的并行度,确定该查询加入查询队列所构成的查询组合以及与该查询对应的并行执行查询对;
43.并行响应时间确定子单元,用于确定所述并行执行查询对执行时该查询的并行响应时间;
44.查询交互确定子单元,用于依据该查询的并行响应时间与单独运行响应时间的比值,以及该查询的单独运行响应时间与查询组合中所有查询的单独运行响应时间之和的比值,确定该查询加入查询队列所构成的查询组合所受查询交互。
45.可选的,所述并行响应时间确定子单元,具体用于:
46.确定所述并行执行查询对是否属于历史查询;
47.若属于历史查询,根据历史查询集确定所述并行执行查询对的并行响应时间;
48.若不属于历史查询,运行所述并行执行查询对,获取所述并行执行查询对的并行响应时间。
49.相对于现有技术,本发明的有益效果如下:
50.本发明公开的一种查询调度方法及查询调度器,同时考虑查询的查询单独响应时间以及紧急程度两大因素对查询优先级的影响,仅将高优先级的查询加入查询空间,延后执行低优先级的查询,缩小查询空间,降低查询组合空间复杂度。然后通过确定查询空间中每个查询加入当前查询队列所构成的查询组合所受查询交互,使查询组合所受查询交互较小的查询优先加入当前查询队列,从而优先执行所受查询交互较小的查询组合,实现查询优化调度,有效提高数据库运行性能。
附图说明
51.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
52.图1为本发明实施例公开的一种查询调度方法的流程示意图;
53.图2为本发明实施例公开的一种查询调度方法的部分方法流程示意图;
54.图3为本发明实施例公开的一种查询调度方法的部分方法流程示意图;
55.图4为本发明实施例公开的一种查询调度器的结构示意图。
具体实施方式
56.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
57.为了便于理解本发明的技术方案,本发明的相关术语解释如下:
58.查询:sql语句。根据应用场景的不同,分为事务型查询和分析型查询。本发明的研究对象为分析型查询。
59.tpc-h:商业智能计算测试,是一套用于决策支持系统的测试基准。
60.联机分析型数据库系统:一个运行历史、聚集的复杂查询的数据仓库,面向用户为决策人员、管理人员,主要用于决策分析。
61.分析型查询:在联机分析型数据库系统中运行的查询,该类查询主要为查询(select)操作。
62.查询响应时间:查询从开始执行到执行结束所花费的时间。
63.查询大小:根据查询响应时间的长短,将查询分为短查询、中等查询、长查询。
64.并行查询:一种数据库中查询运行的场景,指数据库中存在多个查询一起运行。
65.查询空间:所有运行查询的集合。
66.查询组合:在某个时间段,数据库中一起运行的查询的集合。
67.并行度:在某个时间段,数据库中一起运行的查询的个数。
68.查询交互:在并行查询下,查询间的相互影响,即查询间对系统资源的抢夺(或共享),直接表现为造成查询响应时间的延长(或缩短)。
69.查询调度:批查询的执行顺序。
70.发明人经过研究发现:目前最常用的联机分析型查询调度器为最小查询交互调度器,该调度器通过度量查询组合所受查询交互大小,选择受查询交互大小小于阈值的查询组合组成期望查询组合集合。在查询实际执行时,依次选择所受查询交互较小的查询组合,从而确定要加入到数据库中的查询。以此类推,直到所有查询运行完为止。具体步骤包括:(1)确定期望查询组合集合:由查询空间、并行度生成查询组合集合,分别度量每个查询组合所受查询交互,选择受查询交互小于阈值的查询组合组成期望查询组合。(2)确定要加入查询队列中的查询:当数据库中有查询执行完成时,若期望查询组合中包含有合适的查询组合,则选择相应查询加入数据库;反之,则重新运行(1)算法,生成新的期望查询组合集合,从中选择相应查询加入数据库。若在新的期望查询组合集合中仍未找到合适的查询组合,则选择次优的查询组合所对应查询加入数据库。(3)重复运行步骤(2),直到所有查询运行完为止。
71.但是,最小化交互调度器直接度量所有查询组成的查询组合,由于没有事先确定查询优先级,所构成的查询组合空间复杂度高,且最小化交互调度器在度量查询交互时,没有考虑查询大小。由于查询权重的不同,尽管不同查询所受查询交互大小相同,查询运行时间所受影响大小不同。因此,在衡量查询响应时间所受影响大小时,如果不考虑查询本身大小,误差较大。
72.为了解决上述技术问题,本发明提供了一种查询调度方法,应用于联机分析型数据库系统,请参阅图1,本实施例公开的一种查询调度方法包括以下步骤:
73.s101:根据候选查询集中每个查询的单独运行响应时间以及紧急程度确定每个查询的优先级,并将高优先级的查询加入查询空间;
74.查询候选集为本次联机分析涉及到的所有查询。
75.s101其中一种实现方式为:分别对候选查询集中每个查询的单独运行响应时间以及紧急程度量化值进行加权求和,根据加权加和得到的值确定查询的优先级。
76.请参阅图2,本实施例提供了另一种可选的s101的具体实现方式:
77.s201:获取候选查询集中的每个查询的单独运行响应时间;
78.具体的,分别确定候选查询集中的每个查询是否属于历史查询;
79.若属于历史查询,根据历史查询集中每个查询的历史单独运行响应时间确定该查询的单独运行响应时间;
80.若不属于历史查询,调用预先构建的响应时间预测模型,预测该查询的单独运行响应时间。
81.需要说明的是,预先可以通过训练统计模型或深度学习模型构建响应时间预测模型,考虑到查询计划树的时序特征,可采用lstm神经网络框架训练该模型。训练样本来源于历史查询集,将查询中各个操作符的数量等参数作为输入,将查询相应时间作为对应的输出。以postgresql为例,通过“explain sql语句”获取查询执行计划,统计各个操作符的数量,转化为模型所要求输入格式,通过模型获得预测的查询的单独运行响应时间。
82.s202:根据预先设定的单独运行响应时间与查询大小的对应关系,确定候选查询集中的每个查询的查询大小;
83.例如,可以用大查询-4、中等查询-2、小查询-1表示查询大小,每种查询大小对应一个单独运行响应时间区间,则可以根据候选查询集中的每个查询的单独运行响应时间所在区间确定其查询大小。
84.s203:获取候选查询集中的每个查询的紧急程度量化值;
85.例如,可以用相当紧急-3,一般紧急-2,不紧急-1表示紧急程度量化值。根据预先设定的不同查询应用场景对应的紧急程度量化值,来确定候选查询集中的每个查询的紧急程度量化值,候选查询集中每个查询的应用场景是已知的。
86.s204:计算候选查询集中的每个查询的查询大小与紧急程度量化值的和值,将和值小于预设值的查询确定为高优先级,并将高优先级的查询加入查询空间。
87.以用大查询-4、中等查询-2、小查询-1表示查询大小,用相当紧急-3,一般紧急-2,不紧急-1表示紧急程度量化值为例,如果查询大小与紧急程度量化值的和值小于4,则该查询为高优先级将其加入查询空间,剩余的查询为低优先级,延后执行。
88.也就是说,通过将高优先级的查询加入查询空间,优先执行单独运行响应时间较短且紧急程度较高的查询,延后执行低优先级的查询,缩小查询空间,降低查询组合空间复杂度。
89.s102:分别确定查询空间中每个查询加入查询队列所构成的查询组合所受查询交互;
90.当查询加入查询队列中时,由于查询交互,相对于其单独运行时的响应时间,该查询在当前查询组合中的响应时间会发生变化,且在绝大多数情况下,其响应时间会增大。同时,由于该查询的加入,原有查询的运行也会受到影响。基于此,本实施例提出一种查询交互度量方法,度量查询在查询组合中所受查询交互的大小。当有查询要加入查询队列时,依据查询交互度量方法,通过衡量查询组合所受查询交互整体大小,从而选择受查询交互较小的查询组合对应的查询,作为优先级最高的查询首先加入当前查询队列。以此类推,直到查询空间中最后一个查询加入查询队列为止。
91.请参阅图3,本实施例公开了一种s102的实现方式:
92.s301:针对查询空间中每个查询,根据数据库的并行度,确定该查询加入查询队列所构成的查询组合以及与该查询对应的并行执行查询对;
93.需要说明的是,查询组合中查询的数量不能超过数据库的并行度。以数据库的并行度为4为例,则查询空间中的一个查询与查询队列的后三个查询构成查询组合,该查询与查询队列中最后一个查询构成并行执行查询对。
94.s302:确定并行执行查询对执行时该查询的并行响应时间;
95.具体的,确定并行执行查询对是否属于历史查询;
96.若属于历史查询,根据历史查询集确定并行执行查询对的并行响应时间;
97.若不属于历史查询,运行并行执行查询对,获取并行执行查询对的并行响应时间。
98.s303:依据该查询的并行响应时间与单独运行响应时间的比值,以及该查询的单独运行响应时间与查询组合中所有查询的单独运行响应时间之和的比值,确定该查询加入查询队列所构成的查询组合所受查询交互。
99.本实施例建立了一种度量查询组合所受查询交互大小的标准ism,公式如下:
[0100][0101][0102]
其中,表示当查询qi和qj并行时,查询qi的响应时间;表示当查询qi单独运行时,该查询的响应时间;表示查询qi在查询组合mn中所受查询交互的权重。
[0103]
当时,表明当查询qi和qj并行时,由于查询交互,相对于查询qi单独运行时,查询qi的响应时间缩短,此时查询交互表现为促进作用。
[0104]
当时,表明当查询qi和qj并行时,相对于查询qi单独运行时,查询qi的响应时间保持不变,此时查询交互表现为无影响。
[0105]
当时,表明当查询qi和qj并行时,由于查询交互,相对于查询qi单独运行时,查询qi的响应时间延长,此时查询交互表现为阻碍作用。
[0106]
当越大,表明查询qi在查询组合mn中所受查询交互的影响越大。ism则为由于查询qi的加入,所构成的查询组合所受查询交互整体大小。当|ism|越大,表明由于查询qi的加入,当前查询队列所受查询交互越大。
[0107]
s103:将查询组合所受查询交互最小所对应的查询加入查询队列;
[0108]
根据上述方法,依次度量查询空间中每个查询与当前查询队列所构成的查询组合所受查询交互的大小ism。
[0109]
优先选择ism<0的查询加入当前查询队列,且ism越小,该查询加入查询队列的优先级越高;其次选择ism≥0的查询加入当前队列,且ism越小,该查询加入查询队列的优先级越高,直到所加入的查询与查询队列所构成的查询组合的并行度满足系统要求为止。
[0110]
s104:判断查询空间中的所有查询是否都加入查询队列;
[0111]
若是,s105:查询调度完成;
[0112]
若否,返回执行s102。
[0113]
也就是说,此刻查询空间中的查询为去除已加入查询队列的查询后的剩余查询,再分别确定当前查询空间中每个查询加入查询队列所构成的查询组合所受查询交互,将查询组合所受查询交互最小所对应的查询加入查询队列,直到查询空间中所有查询都加入查询队列。
[0114]
查询交互度量是选择较优查询调度方案的重要基础,本实施例在度量查询组合所受查询交互时,在衡量查询组合中各个查询所受其它查询查询交互的基础上,结合查询大小因素,更符合实际情况,度量查询交互更加准确。
[0115]
可见,本实施例公开的一种查询调度方法,同时考虑查询的查询单独响应时间以及紧急程度两大因素对查询优先级的影响,仅将高优先级的查询加入查询空间,延后执行低优先级的查询,缩小查询空间,降低查询组合空间复杂度。然后通过确定查询空间中每个查询加入当前查询队列所构成的查询组合所受查询交互,使查询组合所受查询交互较小的查询优先加入当前查询队列,从而优先执行所受查询交互较小的查询组合,实现查询优化调度,有效提高数据库运行性能。
[0116]
基于上述实施例公开的一种查询调度方法,本实施例对应公开了一种查询调度器,请参阅图4,该查询调度器包括:
[0117]
查询空间确定单元401,用于根据候选查询集中每个查询的单独运行响应时间以及紧急程度确定每个查询的优先级,并将高优先级的查询加入查询空间;
[0118]
查询交互确定单元402,用于分别确定所述查询空间中每个查询加入查询队列所构成的查询组合所受查询交互;
[0119]
查询顺序确定单元403,用于将查询组合所受查询交互最小所对应的查询加入查询队列,并触发所述查询交互确定单元,直到所述查询空间中所有查询都加入查询队列。
[0120]
可选的,所述查询空间确定单元401,包括:
[0121]
响应时间获取子单元,用于获取所述候选查询集中的每个查询的单独运行响应时间;
[0122]
查询大小确定子单元,用于根据预先设定的单独运行响应时间与查询大小的对应关系,确定所述候选查询集中的每个查询的查询大小;
[0123]
紧急程序获取子单元,用于获取所述候选查询集中的每个查询的紧急程度量化值;
[0124]
查询空间确定子单元,用于计算所述候选查询集中的每个查询的查询大小与紧急程度量化值的和值,将和值小于预设值的查询确定为高优先级,并将高优先级的查询加入所述查询空间。
[0125]
可选的,所述响应时间获取子单元,具体用于:
[0126]
分别确定所述候选查询集中的每个查询是否属于历史查询;
[0127]
若属于历史查询,根据历史查询集确定该查询的单独运行响应时间;
[0128]
若不属于历史查询,调用预先构建的响应时间预测模型,预测该查询的单独运行响应时间。
[0129]
可选的,所述查询交互确定单元402,包括:
[0130]
查询组合确定子单元,用于针对所述查询空间中每个查询,根据数据库的并行度,
确定该查询加入查询队列所构成的查询组合以及与该查询对应的并行执行查询对;
[0131]
并行响应时间确定子单元,用于确定所述并行执行查询对执行时该查询的并行响应时间;
[0132]
查询交互确定子单元,用于依据该查询的并行响应时间与单独运行响应时间的比值,以及该查询的单独运行响应时间与查询组合中所有查询的单独运行响应时间之和的比值,确定该查询加入查询队列所构成的查询组合所受查询交互。
[0133]
可选的,所述并行响应时间确定子单元,具体用于:
[0134]
确定所述并行执行查询对是否属于历史查询;
[0135]
若属于历史查询,根据历史查询集确定所述并行执行查询对的并行响应时间;
[0136]
若不属于历史查询,运行所述并行执行查询对,获取所述并行执行查询对的并行响应时间。
[0137]
本实施例公开的一种查询调度器,同时考虑查询的查询单独响应时间以及紧急程度两大因素对查询优先级的影响,仅将高优先级的查询加入查询空间,延后执行低优先级的查询,缩小查询空间,降低查询组合空间复杂度。然后通过确定查询空间中每个查询加入当前查询队列所构成的查询组合所受查询交互,使查询组合所受查询交互较小的查询优先加入当前查询队列,从而优先执行所受查询交互较小的查询组合,实现查询优化调度,有效提高数据库运行性能。
[0138]
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0139]
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0140]
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
[0141]
上述各个实施例之间可任意组合,对所公开的实施例的上述说明,本说明书中各实施例中记载的特征可以相互替换或者组合,使本领域专业技术人员能够实现或使用本技术。
[0142]
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一
致的最宽的范围。
再多了解一些

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

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

相关文献