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

文档序号:9489430阅读:708来源:国知局
数据库系统的查询方法、服务器和能耗测试系统的制作方法
【技术领域】
[0001] 本发明实施例涉及数据库技术,尤其涉及一种数据库系统的查询方法、服务器和 能耗测试系统。
【背景技术】
[0002] 建设低碳社会已经成为全球共识,在数据库系统中如何建设低成本、低能耗的新 型数据库系统成为至关重要的问题。传统的数据库系统仅考虑了数据库系统的性能优化, 没有估计数据库系统的能耗代价。随着以数据为中心的计算模式的兴起以及大数据等概念 的发展,如何降低数据库系统的能耗已成为学术界和工业界普遍关注的热点问题。
[0003] 现有技术中,提出了一种数据库系统的能耗估计方法,该技术中假设每个元组和 每个磁盘块的功耗为常量α和β,并将物理操作的功耗定义为元组数T和磁盘块数N的 标量函数。常用的一些物理操作如下:顺序扫描(Seqcan)、索引扫描(IndexScan)、位图 扫描(Bitmapscan)、子查询(SubquerySan)、函数扫描(FunctionScan),现有技术中,顺 序扫描的代价函数为αΤ+βΝ,索引扫描的代价函数为τΤ+βΝ+C,位图扫描的代价函数为 η(τΤ+βN)+C,子查询的代价函数为3Γ+你V,函数扫描的代价函数为3Γ+货V。数据库系 统的总代价模型取性能和能耗间的折衷:C=EPn,其中,E是基于T和N计算得到的数据库 系统的能耗,P代表性能。当执行一条结构化查询(StructuredQueryLanguage,简称SQL) 语句时,数据库系统的服务器会计算该SQL语句的执行计划,一条SQL语句一般有多个执行 计划,服务器会计算得到每个执行计划对应的总代价,然后,选取总代价最小的执行计划作 为该SQL语句的最优执行计划。
[0004] 但是,现有技术的能耗估计方法也存在以下问题:现有技术中,假设每一个元组或 者磁盘块的功耗是固定的,但最近的研究发现不同的物理操作有着不同的功耗,即使两个 物理操作的CPU使用率相同,其功耗差异最大可达到60%,因此,现有技术的方法并不能够 准确得到每个物理操作的功耗,从而使得数据库系统的测得的能耗值与实际能耗值存在很 大差异。

【发明内容】

[0005] 本发明实施例提供一种数据库系统的查询方法、服务器和能耗测试系统,使得测 得的数据库系统的查询代价更加准确。
[0006] 本发明第一方面提供一种数据库系统的查询方法,包括:
[0007] 获取所述数据库系统在采集时间内的中央处理器CPU功耗和磁盘功耗,以及所述 数据库系统的各物理操作在所述采集时间内的训练参数;
[0008] 根据所述CPU功耗和磁盘功耗计算所述各物理操作的实际功耗,以所述各物理操 作的训练参数为自变量,以所述各物理操作的实际功耗为因变量进行回归分析得到所述各 物理操作的预测功耗函数;
[0009] 当执行一条SQL语句时,根据所述各物理操作的预测功耗函数计算所述SQL语句 的各执行计划的能耗代价,并根据所述各物理操作的预测时间代价计算所述各执行计划的 时间代价,根据各执行计划的能耗代价和时间代价计算所述各执行计划的查询代价,选择 查询代价最小的执行计划作为所述SQL语句的最优执行计划。
[0010] 结合本发明第一方面,在本发明第一方面的第一种可能的实现方式中,所述根据 各执行计划的能耗代价和时间代价计算所述各执行计划的查询代价,包括:
[0011] 根据以下公式计算所述执行各计划的查询代价:Cost= /?'1 3,其中,Cost为执行 计划的查询代价,P为所述执行计划的能耗代价,T为所述执行计划的时间代价,3为调节因 子,0 <f)S13.
[0012] 结合本发明第一方面以及本发明第一方面的第一种可能的实现方式,在本发明第 一方面的第二种可能的实现方式中,所述根据所述各物理操作的预测功耗函数计算所述各 执行计划的能耗代价,包括:
[0013] 根据所述各物理操作的预测功耗函数计算所述每个执行计划包括的各物理操作 的预测功耗;
[0014] 根据以下公式计算所述各执行计划的预测功耗: ,其中,P为执行计 划的能耗代价,C为所述执行计划的第i个物理操作的预测功耗,i= 1,2, ···,&'为所述 执行计划的第i个物理操作的预测时间代价。
[0015] 结合本发明第一方面以及本发明第一方面的第一种可能的实现方式,在本发明第 一方面的第三种可能的实现方式中,所述根据所述各物理操作的预测时间代价计算所述各 执行计划的时间代价,包括:
[0016] 确定所述每个执行计划的各物理操作的预测时间代价;
[0017] 根据以下公式计算所述各执行计划的时间代价:T ,其中,T为执行计划的 时间代价,~为所述执行计划的第i个物理操作的预测时间代价,i= 1,2,…,N。
[0018] 结合本发明第一方面以及本发明第一方面的第一种至第三种可能的实现方式,在 本发明第一方面的第四种可能的实现方式中,所述各物理操作的训练参数包括以下参数中 的任意组合:CPU使用率、内存使用率、元组数目、页面数目、选择度,其中,所述元组数目为 所述各物理操作所涉及的元组的数目,所述页面数目为所述各物理操作从磁盘读取的页面 的数目。
[0019] 结合本发明第一方面以及本发明第一方面的第一种至第三种可能的实现方式,在 本发明第一方面的第五种可能的实现方式中,所述获取所述数据库系统在采集时间内的 CPU功耗和磁盘功耗,包括:
[0020] 接收能耗测试系统发送的所述CPU功耗和磁盘功耗,其中,所述CPU功耗是所述能 耗测试系统根据测试获取的所述数据库系统的CPU的电流和电压得到的,所述磁盘功耗是 所述能耗测试系统根据测试获取的所述数据库系统的磁盘的电流和电压得到的。
[0021] 本发明第二方面提供一种服务器,包括:
[0022]获取模块,用于获取所述数据库系统的在采集时间内的中央处理器CPU功耗和磁 盘功耗,以及获取所述数据库系统的各物理操作在所述采集时间内的训练参数;
[0023] 分析模块,用于根据所述CPU功耗和磁盘功耗计算所述各物理操作的实际功耗, 以所述各物理操作的训练参数为自变量,以所述各物理操作的实际功耗为因变量进行回归 分析得到所述各物理操作的预测功耗函数;
[0024] 能耗计算模块,用于当执行一条SQL语句时,根据所述各物理操作的预测功耗函 数计算所述SQL语句的各执行计划的能耗代价,并根据所述各物理操作的预测时间代价计 算所述各执行计划的时间代价,根据各执行计划的能耗代价和时间代价计算所述各执行计 划的查询代价,选择查询代价最小的执行计划作为所述SQL语句的最优执行计划。
[0025] 结合本发明第二方面,在本发明第二方面第一种可能的实现方式中,所述能耗计 算模块具体用于:
[0026] 根据以下公式计算所述执行各计划的查询代价:C'osi=PY1%其中,Cost为执行 计划的查询代价,P为所述执行计划的能耗代价,T为所述执行计划的时间代价,3为调节因 ^,〇<a<i〇
[0027] 结合本发明第二方面以及本发明第二方面第一种可能的实现方式,在本发明第二 方面第二种可能的实现方式中,所述能耗计算模块具体用于:
[0028] 根据所述各物理操作的预测功耗函数计算所述每个执行计划包括的各物理操作 的预测功耗;
[0029] 根据以下公式计算所述各执行计划的预测功耗 ,其中,P为执行计 划的能耗代价,Λ为所述执行计划的第i个物理操作的预测功耗,i= 1,2,…,N,4,.为所 述执行计划的第i个物理操作的预测时间代价。
[0030] 结合本发明第二方面以及本发明第二方面第一种可能的实现方式,在本发明第二 方面第三种可能的实现方式中,所述能耗计算模块具体用于:
[0031] 确定所述每个执行计划的各物理操作的预测时间代价;
[0032] 根据以下公式计算所述各执行计划的时间代价:Τ= ,其中,T为执行计划的 时间代价,\为所述执行计划的第i个物理操作的预测时间代价,i= 1,2,…,Ν。
[0033] 结合
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1