[发明专利]将列与函数关联以优化查询执行的方法和查询优化服务器有效
申请号: | 201680004121.0 | 申请日: | 2016-02-02 |
公开(公告)号: | CN107004034B | 公开(公告)日: | 2021-01-29 |
发明(设计)人: | 迪尼普·库马尔;库马尔·拉吉夫·拉丝拓吉;尼雅玛拉·斯瑞坎塔雅 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F16/2455 | 分类号: | G06F16/2455;G06F16/2453 |
代理公司: | 北京三高永信知识产权代理有限责任公司 11138 | 代理人: | 颜晶 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 函数 关联 优化 查询 执行 方法 服务器 | ||
本发明涉及一种将列与函数关联以优化查询执行的方法。所述方法包括查询优化服务器接收包含一个或多个列的信息以及所述一个或多个列的每个的函数信息的数据定义语句。所述查询优化服务器将具有函数信息的列与对应的预定义函数相关联并将其存储在存储器中。一旦接收到包含与列关联的函数的查询,所述查询优化服务器就将该函数与存储在存储器中的预定义函数作对比。基于所述对比,所述查询优化服务器从存储器中访问该预定义函数用于执行查询。
技术领域
本发明大体上涉及数据库管理系统,尤其是涉及一种将列与函数关联以优化查询执行的系统和方法。
背景技术
通常,数据库中的数据使用查询来访问。查询是一种特定语法的语句,指定要从数据库中检索的数据。查询处理器通常用来处理查询,识别执行查询的最优计划,以及从数据库中检索与查询中指定的参数相匹配的数据。数据库查询和编程语言的一个示例为结构化查询语言(Structured Query Language,SQL),用于存储、检索和查询存储在关系数据库系统中的数据。
目前,与average、sum、max、min等数学函数相关联的查询是通过在运行时调用函数管理器来执行的。根据查询中定义的每列数据类型,函数管理器在查询执行期间,会提供如average函数、sum函数、maximum函数和minimum函数等相应的数学函数。考虑下面的查询示例:
CREATE TABLE test(a int,b int,c varchar)--------------------(1)
SELECT AVG(a)FROM test WHERE b100--------------------(2)
在执行“Create”查询时,数据库中会建立一个具有三列的表,即列a、列b和列c。而对于执行“Select”查询,函数管理器在运行时确定列的类型“a”为整数。因此,必须调用整数平均值(Avg)函数来执行该查询。这就使得在执行过程中产生额外开销来使用函数管理器调用相应的数学函数,而这又会反过来影响查询执行的性能。
为了克服上述问题,预定义并存储这些函数,以便在运行时它们能够直接被访问。但是,数学函数数目众多,表中的列数目也将非常庞大。因此,预编译和预定义函数的所有可能组合是非常困难的。
发明内容
本发明的目的在于,在执行运行期间,直接通过预定义并访问函数来优化查询执行,所述函数与查询中提供的列相关联。
本发明涉及一种将列与函数关联以优化查询执行的方法。该方法包括,查询优化服务器接收包含一个或多个列的信息的定义语句,所述列用于建立表。一旦接收到所述定义语句,所述查询优化服务器确定该定义语句中所述一个或多个列的每个是否存在一个或多个函数信息。如果该定义语句中提供了所述一个或多个函数信息,查询优化服务器将具有所述一个或多个函数信息的所述一个或多个列的每个与对应的预定义函数相关联,来优化查询执行。
在一个实施例中,本发明提供了一种查询优化服务器接收查询语句的方法。所述查询语句包括与一个或多个列相关联的一个或多个函数,用于查询数据库。一旦接收到所述查询语句,所述查询优化服务器将存储器中与所述一个或多个列相关联的预定义函数,与和一个或多个列相关联的一个或多个函数作对比。所述查询优化服务器基于所述对比,从存储器中访问与一个或多个列相关联的预定义函数,来执行所述查询语句。
本发明提供一种查询优化服务器,将列与函数关联以优化查询执行。所述查询优化服务器包括接收模块、确定模块和关联模块。所述接收模块从一个或多个客户端设备接收包含一个或多个列的信息的定义语句,所述列用于建立表。所述接收模块也接收查询语句用于查询数据库。所述确定模块在接收到定义语句后,确定该定义语句中所述一个或多个列的每个是否存在一个或多个函数信息。所述关联模块将具有所述一个或多个函数信息的所述一个或多个列的每个与对应的预定义函数相关联,来优化查询执行。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201680004121.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:锁扣式停车位管理系统
- 下一篇:一种利用无线通讯紧急预防汽车追尾报警器