一种数据库系统负载的调度方法技术方案

技术编号:17994564 阅读:57 留言:0更新日期:2018-05-19 11:45
本发明专利技术属于数据库技术领域,具体是一种数据库系统中查询队列的调度方法。为了尽可能用最短时间执行完给定的查询队列,包括以下步骤,1)获取数据库中查询单独运行时的响应时间

A load scheduling method for database system

The invention belongs to the field of database technology, in particular to a scheduling method for querying queues in a database system. In order to execute the given query queue in the shortest possible time, including the following steps, 1) get the response time of the query in the database when it is running separately.

【技术实现步骤摘要】
一种数据库系统负载的调度方法
本专利技术属于数据库
,具体是一种数据库系统中查询队列的调度方法。
技术介绍
在OLAP数据库系统中,不同类型的查询并行时会争用系统资源,这种现象称为“查询交互”。不同程度的查询交互会对查询的执行时间造成不同程度的影响。对于给定的一批查询队列,查询调度器可以合理安排并行的查询,尽可能降低查询交互的程度,以此来达到该队列“执行时间最少”的目的。有关查询调度器的
技术介绍
主要有两方面的内容:1、查询性能预测模型;2、查询调度算法。查询调度算法通常以查询性能预测模型为基础。《数据库负载响应时间预测模型训练样本的采集方法》,专利号:ZL201510171679.5当前的调度算法都是批量调度,即将给定的查询队列转换成一批并行的查询(即查询组合),这些调度算法仅在查询队列开始运行前执行,忽略了查询组合在运行过程中的变化情况,例如查询组合m={q1,q2,q3}运行一段时间后q1已经结束,此时需要执行另外一个新的查询。当前的调度器没有考虑到这种变化,调度的颗粒度不够细致。
技术实现思路
本专利技术为了尽可能用最短时间执行完给定的查询队列,该调度算法以查询响应时间预测模型为基础,也就是说调度器需要在查询运行前得知它的响应时间才可以合理调度查询。提供一种数据库系统中查询队列的调度方法。本专利技术采取以下技术方案:一种数据库系统负载的调度方法,包括以下步骤,1)获取数据库中查询单独运行时的响应时间和两两同时运行时的响应时间2)按照以下步骤构造查询组合相似性预测模型:2.1)对每个查询qi计算其queryrating向量:其中2.2)根据queryrating向量,计算任意两个查询间的“距离”:2.3)根据任意两个查询间的距离,计算两个包含查询q的查询组合间的距离:其中和表示包含查询q的两个不同查询组合;2.4)计算查询组合空间中任意两个查询组合间的距离,并构造一个查询组合相似度三维数组;2.5)当需要预测查询组合中某个查询的响应时间时,可以在上述三维数组中所在平面寻找K个与my相似的查询组合,并使用这K个相似查询组合中qi的响应时间的平均值作为的响应时间预测值,即:其中表示与my相似的查询组合mx中,查询qi的响应时间;3)在查询组合相似性模型的基础上对给定的查询队列W={<qi,wi>|i=1,2,…,N}进行调度,使得该队列总计运行时间尽可能小,其中wi表示该队列中查询qi的数量,表示查询组合ml的交互程度,其中表示根据预测模型得出查询qi在查询组合ml中的响应时间预测值。与现有技术相比,本专利技术尽可能用最短时间执行完给定的查询队列。本专利技术提出的调度器可以在任意一个查询结束后自动执行调度算法,是一种颗粒度更加细致的调度算法,能以更短的时间执行完给定的查询队列。附图说明图1为查询组合相似度三维数组示意图。具体实施方式查询响应时间预测模型:本专利技术中的预测模型是通过查询组合相似性进行预测的。通俗来讲,就是具有相似特性的查询组合会表现出相似的响应时间。该预测模型需要一个查询组合运行记录表,用来记录数据库系统已运行过的查询组合中每个查询的响应时间。相似性预测模型的具体实现步骤如下:1)获取数据库中查询单独运行时的响应时间和两两同时运行时的响应时间2)对每个查询qi计算其queryrating向量:其中3)根据queryrating向量,计算任意两个查询间的“距离”:4)根据任意两个查询间的距离,计算两个包含查询q的查询组合间的距离:其中和表示包含查询q的两个不同查询组合。5)计算查询组合空间中任意两个查询组合间的距离,并构造一个类似于图1的查询组合相似度三维数组。这个三维数组可以加快对相似查询组合的查找。6)当需要预测查询组合中某个查询的响应时间时,可以在上述三维数组中所在平面寻找K个与my相似的查询组合,并使用这K个相似查询组合中qi的响应时间的平均值作为的响应时间预测值,即:其中表示与my相似的查询组合mx中,查询qi的响应时间。查询调度器:查询调度器通过“查询响应时间预测模型”得知查询组合空间中每个查询的响应时间后(此时的响应时间为预测值),才能对给定的查询队列进行调度。结合具体实例来详细描述
技术实现思路
,该实施例有如下设定:构造查询响应时间预测模型:1.单独运行Q中每一个查询模板,并记录单独运行时的响应时间,用表示。2.成对运行Q的每一个查询模板,并记录成对运行时各自的响应时间,用表示查询qi和qj并性行时,查询qi的响应时间。结合本实施例可以得出以下成对运行时的响应时间表:其中NA表示不获取同一个查询模板成对运行时的响应时间。3.计算每个查询qi的queryrating向量以上每行都是对应查询的queryrating向量。4.根据queryrating向量,计算任意两个查询间的“距离”:例如实施例中需要计算q1和q2之间的距离,计算式子如下:由于与不存在,因此上式中不包含和5.对每一个在查询模板Q中的查询q,计算包含它的全部查询组合之间的距离:上述式子的直观含义是,包含q的两个查询组合和的距离是这两个查询组合里互不相同的查询之间的平均距离。例如q=q1,则中的分子部分为下列矩阵中的元素和:中的分母部分为两个查询组合和中互不相同的查询数量的积:3*3=9。6.对查询模板Q中每一个查询都进行计算,得到图1的数据结构,方便之后快速选取相似的查询组合:预测流程:以上6步构造了相似预测模型基础工作,在此基础上便可以进行预测。初始样本选取方法分为两种:1、按照专利《数据库负载响应时间预测模型训练样本的采集方法》获取初始样本;2、模型初始并不获取样本,直接将数据库系统运行过的任意查询组合作为样本。采样方法可以依据具体的生产需求使用。但不论使用哪种方法,之后的预测流程是一致的。结合本实施例,设需要预测查询组合中q1的响应时间,根据图1的三维数组,找到与最相似的K个查询组合并将q1在这些查询组合中的响应时间的平均值作为对q1在中响应时间的预测值。如果在集合中,有些查询组合没有被选取为样本(即当前还没有该查询组合中q1响应时间的真实值),则将此查询组合从K个相似集合中剔除,使用剩余K-1个相似的查询组合做预测。构造查询调度器在查询响应时间预测模型的基础上,可以构造一个查询调度器。结合本实施例,设查询队列为:W={<qi,wi>|i=1,2,…,10}。在实施调度前需要计算每一个查询组合的交互程度:例如,的之后便可依据以下算法对W进行调度,使得数据库完成W的时间尽可能少。步骤一:构造线性优化问题:步骤二:根据当前W中剩余待执行查询解步骤一中的优化问题。如果当前情况下没有解,使r加1后再解该优化问题,直到得出解为止。步骤三:对所得的优化解Desiredixes,即需要运行的查询组合及其数量,按照运行数量降序排列。步骤四:根据当前数据库系统中正在运行的查询组合RunningMix,从步骤三所得优化解中自上而下遍历,选出一个查询q,使得步骤五:重复步骤二到步骤四,直到W中没有待执行查询。上述优化问题[6-10]的解使用R语言中lpSolve包进行计算。本文档来自技高网
...
一种数据库系统负载的调度方法

【技术保护点】
一种数据库系统负载的调度方法,其特征在于:包括以下步骤,1)获取数据库中查询单独运行时的响应时间

【技术特征摘要】
1.一种数据库系统负载的调度方法,其特征在于:包括以下步骤,1)获取数据库中查询单独运行时的响应时间和两两同时运行时的响应时间2)按照以下步骤构造查询组合相似性预测模型:2.1)对每个查询qi计算其queryrating向量:其中2.2)根据queryrating向量,计算任意两个查询间的“距离”:2.3)根据任意两个查询间的距离,计算两个包含查询q的查询组合间的距离:其中和表示包含查询q的两个不同查询组合;2.4)计算查询组合空间中任意两个查询组合间的距离,并构造一个查询组合相似度三维数组;2.5)当需要预测查询组合中某个查询的响应时间时,可以在上述三维数组中所在平面寻找K个与my相似的查询组合,并使用这K个相似查询组合中qi的响应时间的平均值作为的响应时间预测值,即:其中表示与my相似的查询组合mx中,查询qi的响应时间;3)在查询组合相似性模型的基础上对...

【专利技术属性】
技术研发人员:牛保宁张锦文
申请(专利权)人:太原理工大学
类型:发明
国别省市:山西,14

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

1