数据库系统的查询方法、服务器和能耗测试系统的制作方法_3

文档序号:9489430阅读:来源:国知局
作符的特征数据,如表3所示,表3列举了6中物理操作及其对应的SQL语句:
[0066] 表 3
[0067]
[0068] 步骤102、根据CPU功耗和磁盘功耗计算各物理操作的实际功耗,以各物理操作的 训练参数为自变量,以各物理操作的实际功耗为因变量进行回归分析得到各物理操作的预 测功耗函数。
[0069] 服务器在根据CPU功耗和磁盘功耗计算各物理操作的实际功耗时,可以将物理操 作的CPU功耗和磁盘功耗直接相加得到物理操作的实际功耗。
[0070] 各物理操作的训练参数包括以下参数中的任意组合:CPU使用率、内存使用率、元 组数目、页面数目、选择度,当某一物理操作的训练参数包括以下五个参数时:元组数目、页 面数目、选择度、CPU使用率、内存使用率,则服务器以元组数目、页面数目、选择度、CPU使 用率、内存使用率为自变量,以物理操作的实际功耗为因变量进行回归分析得到物理操作 的预测功耗函数。例如:将单个物理操作的预测功耗P定义为:P=F(T,Ν,σ,c,M),其中, Τ为元组数目,Ν为页面数目,σ为选择度,C为CPU使用率,Μ为内存使用率,F为预测功耗 函数,P为物理操作的实际功耗。对F用获取到的训练参数进行回归分析,可以得到F。举 例来说,假设某一物理操作的训练参数包括以下四个参数:CPU使用率、内存使用率、元组 数目和页面数目,则可以建立类似下面的回归方程:
[0071]P=a+a! ·Xi+a2 ·X2+a3 ·X3+a4 ·X4,
[0072] 其中,自变量XI代表CPU使用率,X2代表内存使用率,X3代表元组数,X4代表页 面数目,将获取到的CPU使用率、内存使用率、元组数目和页面数目以及物理操作的实际功 耗的值带入上述回归方程进行线性回归(这一步可以使用开源的统计分析工具),最终得 到的函数就类似下面的形式:
[0073]P= 30. 49+0. 61 ·XJ0. 22 ·Χ2+0· 12 ·Χ3+0· 15 ·X4。
[0074] 常用回归分析的方法有线性回归和指数回归,当然还有其他回归方法,这里不再 一一列举。本实施例中可以采用迭代线性回归的训练方法,在迭代线性回归方法中以总误 差率值作为目标函数,总误差率值为物理操作的预测功耗与实际功耗的比值。回归过程如 下:
[0075] (1)根据初始输入训练参数T、N、〇、C、M和实际功耗P,线性回归得到预测功耗函 数F1,将训练参数带入F1得到预测功耗,根据预测功耗和实际功耗计算总误差率值Π。
[0076] (2)选取单个训练参数进行简单变换(如:7^Γ2 ),将变换后的训练参数作为新 特征再次进行回归,得到预测功耗函数F2和总误差率值f2。
[0077] (3)比较fl、f2,若f2〈fl,则将步骤⑵中生成的新特征保留,保存预测功耗函数 F2,重复执行步骤(2),直到f2>fl,且之前无新特征,则算法停止。
[0078] 现有技术中,各物理操作的预测功耗函数是人为定义的,很多情况下人为定义的 预测功耗函数并不符合实际情况,导致各物理操作的预测功耗不准确。而本发明实施例,每 个物理操作的预测功耗函数,均是根据训练参数采用回归分析得到,使得各物理操作的预 测功耗函数更加接近实际情况,各物理操作的预测功耗值更准确。
[0079] 步骤103、当执行一条SQL语句时,根据各物理操作的预测功耗函数计算SQL语 句的各执行计划的能耗代价,并根据各物理操作的预测时间代价计算各执行计划的时间代 价,根据各执行计划的能耗代价和时间代价计算各执行计划的查询代价,选择查询代价最 小的执行计划作为SQL语句的最优执行计划。
[0080] 每一条SQL语句对应多个执行计划,执行计划可以看成是多个物理操作的一个执 行序列,执行计划的查询代价为执行计划包括的所有物理操作的能耗代价和时间代价有 关。
[0081] 本实施例中,服务器根据各物理操作的预测功耗函数计算各执行计划的能耗代 价,具体为:首先,根据各物理操作的预测功耗函数计算每个执行计划包括的各物理操作的 预测功耗;然后,根据以下公式计算各执行计划的预测功耗:
>其中,P为执行 计划的能耗代价,<为执行计划的第i个物理操作的预测功耗,i= 1,2,…,N,k为执行 计划的第i个物理操作的预测时间代价,N为执行计划包括的物理操作的个数。
[0082] 服务器根据各物理操作的预测时间代价计算各执行计划的时间代价,具体为:首 先,确定每个执行计划的各物理操作的预测时间代价;根据以下公式计算所述各执行计划 的时间代价:Τ=Σ^_,其中,T为执行计划的时间代价,&为执行计划的第i个物理操作的 预测时间代价,i= 1,2,…,N。
[0083] 服务器在得到执行计划的能耗代价和时间代价后,可以根据以下公式计算各执行 计划的查询代价:CostpF1!714,其中,Cost为执行计划的查询代价,Ρ为执行计划的能耗代 价,Τ为执行计划的时间代价,d为调节因子,0&把1。
[0084] 现有技术中,服务器在确定SQL语句的最优执行计划时总是选择时间代价最小的 执行计划,而能耗有效的查询方式通常选取能耗代价最低的执行计划。能耗和时间这两个 指标存在着一定的矛盾,本实施例的方法在于寻找一种折中的方式,保证执行计划的能耗 代价较低,但允许执行计划的时间性能有所退化。本实施例的方法通过引入调节因子9来 实现,数据库系统可以根据应用的要求来选择不同的3值,进而实现能耗和时间性能的最佳 折衷,若数据库系统希望能够尽可能地降低能耗,那么可以设置较小的3值,当3 = 0时,表 示时间性能可以无限退化,只关注能耗指标;相应地,当3=1时,不允许时间性能有任何退 化。
[0085] 假设有两个执行计划Planl和Plan2,Planl的能耗代价为P,Planl的时间代价为 T%Plan2的能耗代价小于Planl,假设为nP(0〈n〈l),Plan2的时间代价为T。如果Planl和 Plan2的查询代价相等,那么Planl的时间代价f大于Plan2的时间代价,在能耗有效的数 据库系统中服务器选择Plan2,Plan2允许时间性能退化。Planl的时间代价T*的计算过 程如下:
[0086]Planl:P、T*
[0087]Plan2:nP、T,令
[0093] 上述结果表明,Plan2比Planl节约(1 一η)XP的能耗,通过设置不同的3值来控 制能耗代价和时间代价的折衷度。如表4所示,当η= 0. 8时,即用户希望执行计划能够
节约20%的能耗时,调节因子1与时间性能的关系: 也就是说,在 〇 > 3=_0.,2时,选择Plan2的时间性能会比Planl的时间性能低6%。若9取更大的值,则在同 样的能耗节约情况下,允许的时间性能退化度更大。
[0094] 表 4
[0095]
[0096] 本实施例中,由于各物理操作的预测功耗函数采用回归分析方法得到,因此,各物 理操作的预测功耗更精确,从而使得SQL语句的执行计划的能耗更准确,请参照图2和图3 所示,图2为静态环境下TPC-H数据库系统的能耗代价的对比示意图,图3为竞争环境下 TPC-H数据库系统的能耗代价示意图,其中,静态环境即系统上只运行数据库服务,由于测 试查询依次单个执行,相当于独占系统资源,竞争环境即系统中数据库服务不是独占系统 资源,而是存在其他的应用程序同时运行。图2和图3白色区域表示TPC-H的实际能耗,黑 色区域表示本发明实施例的方法所确定的能耗,灰色区域表示现有技术采用标量函数方法 所确定的能耗,通过对比,可以看出本发明实施例的方法测得的执行计划的能耗更加准确。
[0097] 本实施例,通过获取各物理操作的训练参数以及CPU的功耗和磁盘功耗,根据CPU 功耗和磁盘功耗计算各物理操作的实际功耗,以各物理操作的训练参数为自变量,以各物 理操作的实际功耗为因变量采用回归分析方法得到各物理操作的预测功耗函数,使得各物 理操作的预测功耗函数更准确,从而使得执行计划的能耗代价更加接近执行计划的实际能 耗代价。另外,通过引入调节因子来调整数据库
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1