[发明专利]数据库查询方法、服务器和系统有效
申请号: | 201810162856.7 | 申请日: | 2018-02-26 |
公开(公告)号: | CN110309171B | 公开(公告)日: | 2021-08-20 |
发明(设计)人: | 陈由峰 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F16/2453 | 分类号: | G06F16/2453;G06F16/2457 |
代理公司: | 北京中博世达专利商标代理有限公司 11274 | 代理人: | 申健 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据库 查询 方法 服务器 系统 | ||
1.一种数据库查询方法,其特征在于,包括:
接收查询语句;
对所述查询语句进行解析以得到对应数据库平台的物理语法树,其中,所述物理语法树指适配所述数据库平台,并能够指示所述查询语句的语法结构的图形表示;
根据所述物理语法树得到所述查询语句的复杂程度和待扫描的记录数;
根据所述待扫描的记录数和复杂程度估计所述查询语句的资源消耗指数;
根据所述资源消耗指数将所述查询语句加入对应的队列;
按照资源消耗从低至高的队列顺序执行其中的查询语句以得到查询结果。
2.根据权利要求1所述的方法,其特征在于,所述对所述查询语句进行解析以得到语法树,包括:
对所述查询语句进行解析得到逻辑语法树,所述逻辑语法树中包括供用户查找的逻辑字段和逻辑表;
根据逻辑表配置对所述逻辑语法树解析得到各数据库平台对应的物理语法树,所述物理语法树中包括各数据库平台中实际存储的物理字段和物理表,所述逻辑表配置中包括所述逻辑字段、逻辑表与所述物理字段、物理表的映射关系。
3.根据权利要求1所述的方法,其特征在于,所述根据所述物理语法树得到所述查询语句的复杂程度和待扫描的记录数,包括:
根据所述物理语法树中的来自子句得到被查询的物理表的名称;
根据所述物理表的名称从元数据系统中获取所述物理表中包括的待扫描的记录数;
根据所述物理语法树中的操作的复杂程度计算得到所述查询语句的复杂程度。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述根据所述待扫描的记录数和复杂程度估计所述查询语句的资源消耗指数,包括:
估计所述资源消耗指数=所述待扫描的记录数*K1+所述复杂程度*K2,其中,K1和K2为比例系数,K1+K2=1,且K10,K20。
5.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:
记录历史查询语句的实际执行耗时与历史查询语句的待扫描的记录数和复杂程度之间的映射关系。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
根据所述查询语句的待扫描的记录数和复杂程度以及所述映射关系估计所述查询语句的执行耗时。
7.一种数据库查询服务器,其特征在于,包括:
接收单元,用于接收查询语句;
解析单元,用于对所述接收单元接收的查询语句进行解析以得到对应数据库平台的物理语法树,其中,所述物理语法树指适配所述数据库平台,并能够指示所述查询语句的语法结构的图形表示;
获取单元,用于根据所述解析单元解析的物理语法树得到所述查询语句的复杂程度和待扫描的记录数;
估计单元,用于根据所述获取单元得到的待扫描的记录数和复杂程度估计所述查询语句的资源消耗指数;
排队单元,用于根据所述估计单元估计的资源消耗指数将所述查询语句加入对应的队列;
执行单元,用于按照所述排队单元所排队的资源消耗从低至高的队列顺序执行其中的查询语句以得到查询结果。
8.根据权利要求7所述的服务器,其特征在于,所述解析单元具体用于:
对所述查询语句进行解析得到逻辑语法树,所述逻辑语法树中包括供用户查找的逻辑字段和逻辑表;
根据逻辑表配置对所述逻辑语法树解析得到各数据库平台对应的物理语法树,所述物理语法树中包括各数据库平台中实际存储的物理字段和物理表,所述逻辑表配置中包括所述逻辑字段、逻辑表与所述物理字段、物理表的映射关系。
9.根据权利要求7所述的服务器,其特征在于,所述获取单元具体用于:
根据所述物理语法树中的来自子句得到被查询的物理表的名称;
根据所述物理表的名称从元数据系统中获取所述物理表中包括的待扫描的记录数;
根据所述物理语法树中的操作的复杂程度计算得到所述查询语句的复杂程度。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810162856.7/1.html,转载请声明来源钻瓜专利网。