基于回归的用于sql语句性能预测的成本建模方法和装置的制造方法

文档序号:8502164阅读:345来源:国知局
基于回归的用于sql语句性能预测的成本建模方法和装置的制造方法
【技术领域】
[0001]本发明涉及数据库领域,尤其涉及一种用于SQL语句性能预测的成本建模方法和
>J-U ρ?α装直。
【背景技术】
[0002]现有技术提出过用于SQL语句成本评估的SQL语句成本建模方法。这个方法先训练了一个带谓词的查询的执行成本的神经网络,然后用它去评估此查询在其它数据库记录上的成本。它采用前馈神经网络,其是人工神经网络设计的最初的也是可论证地最简单的一种。在这种网络中,信息只会在一个方向流动,即向前,从输入单元通过隐藏单元(如果有的话)然后到达输出单元。在网络中没有周期或者循环。
[0003]但是,这样的建模方法多用于SQL语句执行成本的评估,对于SQL语句执行成本或性能的预测来说其准确度差。

【发明内容】

[0004]有鉴于此,本发明实施例旨在提出一种能够用来高准确度地预测SQL语句的性能的成本建模方案。
[0005]根据本发明的一个实施例,提供了一种基于回归的用于SQL语句性能预测的成本建模方法,包括:重复执行SQL语句;动态捕获该SQL语句的执行成本和至少包括数据量指标、并发量指标、SQL语句性能指标中的至少一个的成本指标;基于捕获的该SQL语句的执行成本和成本指标的历史,动态建立基于回归的成本模型,该成本模型的参数包括所述执行成本和所述成本指标。
[0006]在一种具体实现中,数据量指标包括数据库数据量;并发量指标包括下列中的一个或多个:活动会话数、数据库连接数、交易量;SQL语句性能指标包括下列中的一个或多个:CPU时间、磁盘读、逻辑读、SQL语句执行次数、CPU时间排序、响应时间排序、逻辑读排序、执行时间、磁盘读排序。
[0007]在一种具体实现中,基于回归的成本模型包括下列中的一个或多个:
[0008]-Cost=a0X0+a1
[0009]-Cos t=a0X0+a1X1+...+anXn+an+1
[0010]+anXn+an+i
[0011]Cost=I/ (1+e—z),
[0012]其中Cost是SQL语句的执行成本,“…Xn是釆用的SQL语句的成本指标,a。、 …an、an+1是成本模型中的系数。
[0013]在一种具体实现中,重复执行SQL语句包括以固定的时间间隔执行SQL语句。
[0014]在一种具体实现中,动态捕获该SQL语句的执行成本和成本指标包括通过数据库的快照动态捕获该SQL语句的执行成本和成本指标。
[0015]在一种具体实现中,所述基于回归的用于SQL语句性能预测的成本建模方法用于下列应用中的一个或多个:执行成本的预测;随时间变化的成本阈值的动态阈值预测;随时间变化的执行成本的突变预测。
[0016]根据本发明的一个实施例,提供了一种基于回归的用于SQL语句性能预测的成本建模装置,包括:执行单元,被配置为重复执行SQL语句;捕获单元,被配置为动态捕获该SQL语句的执行成本和至少包括数据量指标、并发量指标、SQL语句性能指标中的至少一个的成本指标;建立单元,被配置为基于捕获的该SQL语句的执行成本和成本指标的历史,动态建立基于回归的成本模型,该成本模型的参数包括所述执行成本和所述成本指标。
[0017]在一种具体实现中,数据量指标包括数据库数据量;并发量指标包括下列中的一个或多个:活动会话数、数据库连接数、交易量;SQL语句性能指标包括下列中的一个或多个:CPU时间、磁盘读、逻辑读、SQL语句执行次数、CPU时间排序、响应时间排序、逻辑读排序、执行时间、磁盘读排序。
[0018]在一种具体实现中,基于回归的成本模型包括下列中的一个或多个:
[0019]-Cost=a0X0+a1
[0020]-Cos t=a0X0+a1X1+...+anXn+an+1[0021 ] +anXn+an+i
[0022]Cost=I/(1+e—z),
[0023]其中Cost是SQL语句的执行成本,“…Xn是釆用的SQL语句的成本指标,a。、 …an、an+1是成本模型中的系数。
[0024]在一种具体实现中,执行单元进一步被配置为固定的时间间隔执行SQL语句。
[0025]在一种具体实现中,捕获单元进一步被配置为通过数据库的快照动态捕获该SQL语句的执行成本和成本指标。
[0026]在一种具体实现中,所述基于回归的用于SQL语句性能预测的成本建模装置用于下列应用中的一个或多个:执行成本的预测;随时间变化的成本阈值的动态阈值预测;随时间变化的执行成本的突变预测。
[0027]由于本发明提出的是一个基于回归的成本模型,并且选用的参数包括执行成本,以及数据量指标、并发量指标、SQL语句性能指标中的至少一个,实验证明,选用了这些参数的基于回归的模型相比于其它建模方法(如现有技术的神经网络法),大大提高了对于SQL语句执行成本或性能的预测的准确度。
【附图说明】
[0028]本发明的其它特点、特征、优点和益处通过以下结合附图的详细描述将变得更加显而易见。
[0029]图1示出了根据本发明一个实施例的基于回归的用于SQL语句性能预测的成本建模方法的流程图。
[0030]图2示出了根据本发明一个实施例的基于回归的用于SQL语句性能预测的成本建模装置的框图。
[0031]图3示出了根据本发明一个实施例的基于回归的用于SQL语句性能预测的成本建模设备的框图。
【具体实施方式】
[0032]下面,将结合附图详细描述本发明的各个实施例。
[0033]图1示出了根据本发明一个实施例的基于回归的用于SQL语句性能预测的成本建模方法。
[0034]在步骤S101,以固定的时间间隔(例如I小时)执行SQL语句。
[0035]在步骤S102,通过数据库的快照以固定的时间间隔捕获(例如I小时捕获一次,即每执行一次SQL语句,随后捕获一次)该SQL语句的执行成本和成本指标。SQL语句的执行成本是SQL语句以单块读时间为单位表示的总执行时间,它能够从数据库的快照中通过现有技术的方法得出。成本指标是指与成本有关的用于动态建模的其它指标,其在本发明的一个实施例中至少包括数据量指标、并发量指标、SQL语句性能指标中的至少一个。这些成本指标也能够从数据库的快照中通过现有技术的方法得出。
[0036]数据量指标包括数据库数据量,例如表大小或表行数。
[0037]并发量指标可以是SQL语句对应的业务的并发量,例如交易量(transact1n/sec);也可以是数据库的并发量,例如下列中的一个或多个:活动会话数(sess1n)、数据库连接数(connect1n)。活动会话数(sess1n)是数据库中当前活动的会话的总数目。数据库连接数(connect1n)它是指连接到的数据库的数目。交易量(transact1n/sec)是指数据库中每秒执行的与SQL语句对应的业务的交易的数目。
[0038]SQL语句性能指标是除了执行成本之外能够从一个方面反映SQL语句的性能的指标,也包括通过对一些指标计算得到的值(例如逻辑读/SQL语句执行次数等)。
[0039]SQL语句性能指标包括下列中的一个或多个:
[0040]-CPU时间(CPU time),其含义是SQL语句执行时耗用CPU的时间;
[0041]-磁盘读(diskreads),其含义是SQL语句执行时读磁盘的次数;
[0042]-逻辑读(buffergets),其含义是SQL语句执行时取缓存的次数;
[0043]-SQL语句执行次数(Execut1ns),其是SQL语句所执行的次数;
[0044]-CPU时间排序(CPU time rank),其是SQL语句执行时耗用CPU的时间的排序;
[0045]-响应时间排序(elapsetime rank),其是响应SQL语句用的时间;
[0046]-逻辑读排序(buffergets rank),其是SQL语句执行时取缓存的次数的排序;
[0047]-执行时间(execut1ntime),其是SQL语句的执行时间;
[0048]-磁盘读排序(diskreads rank),其是SQL语句执行时读磁盘的次数的排序。
[0049]捕获SQL语句的执行成本和成本指标后,将它们记录在数据库中。
[0050]在步骤S103中,基于数据库中记录的捕获的该SQL语句的执行成本和成本指标的历史,动态建立基于回归的成本模型,该成本模型的参数包括所述执行成本和所述成本指标。
[0051]基于回归的成本模型包括下列中的一个或多个:
[0052]-Cost=a0X0+a1
[0053]-Cost=a0X0+a1X1+...+anXn+an+1
[0054]-z=a0X0+a1X1+...+anXn+an+1
[0055]Cost=I/(l+e_z),
[0056]其中Cost是SQL语句的执行成本,Xc^X1、…Xn是采用的SQL语句的成本指标,a。、a1、…an、an+1是成本模型中的系数。
[0057]动态建立基于回归的成本模型的含义是,每次新捕获了 SQL语句的执行成本和成本指标后,由于捕获的SQL语句的执行成本和成本指标的历史发生了变化(即增加了此次捕获到的执行成本和成本指标),建立的成本模型中例如a。、B1,…an、an+1各系数的值也会发生变化。这种动态模型是随着捕获到的执行成本和成本指标的历史的变化而更新的。这样,利用这种成本建模就能实现与SQL语句性能有关的精确预测。
[0058]所述基于回归的用于SQL语句性能预测的成本建模方法用于下列应用中的一个或多个:执行成本的预测;随时间变化的成本阈值的动态阈值预测;随时间变化的执行成本的突变预测。
[0059]关于执行成本的预测:如上所述,成本模型的参数中包含数据量指标和并发量指标。在上述建模的过程中已经学习到SQL语句的执行成本和数据量指标、并发量指标的关系,从而在给定数据量指标和并发量指标时可以预测相应的SQL语句执行成本。
[0060]关于随时间变化的成本的动态阈值预测:如上所述,成本模型的参数中包含SQL语句性能指标,其中一些性能指标可以反映此时是否该SQL语句性能不可接受,因此从SQL语句的执行成本和这些SQL
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1