[发明专利]一种数据库查询优化方法及系统有效
申请号: | 201610058835.1 | 申请日: | 2016-01-28 |
公开(公告)号: | CN105718593B | 公开(公告)日: | 2019-04-16 |
发明(设计)人: | 于繁华;赵东;戴金波;赵宏伟;李瑞;杨威 | 申请(专利权)人: | 长春师范大学 |
主分类号: | G06F16/2453 | 分类号: | G06F16/2453 |
代理公司: | 北京德崇智捷知识产权代理有限公司 11467 | 代理人: | 王金双 |
地址: | 130032 吉林省长春市吉北*** | 国省代码: | 吉林;22 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据库 查询 优化 方法 系统 | ||
一种数据库查询优化方法及系统,该方法包括:将查询语句字符串用查询内部表示结构表示;对所述查询内部表示进行特性分析,生成在语义上等价的查询内部表示;对所述在语义上等价的查询内部表示进行语法分析,生成语义上的数据库内部表示;将语义上的数据库内部表示进行查询优化处理,生成最终的执行计划;对最终的执行计划进行解释和执行,生成查询结果或错误信息。本发明的方法及系统,可以有效的避免单靠计划优化的优化方法所带来的局限性,且减少查询的总资源占用和总时间的消耗,提供数据库查询效率。
技术领域
本发明涉及数据库领域,尤其涉及一种数据库查询优化方法及系统。
背景技术
数据库系统对用户隐藏数据结构细节,提供一个与数据无关的接口,用户只需对查询行为进行简单描述,无须关注获取这些数据的内部过程。查询优化就是在查询执行引擎生成一个执行策略的过程中,尽量使查询的总资源占用和总时间消耗极小化。数据库管理系统可以内置一个查询优化器,用于控制和加快查询执行和数据传输的过程,当用户查询表达经过查询处理器的语法分析处理后,查询优化器为查询选择一种适当的数据存取策略作为输出。然而,查询优化一直是个复杂的问题,特别是对海量数据的查询。
数据库系统的一个主要功能是它能够使得用户通过查询语言访问和修改数据。查询是数据库系统中最基本、最常用的一种操作,因此,查询是否具备较高的执行效率和快捷的反应速度,己成为数据库用户和设计者极其关注的问题。为了提高数据库系统的性能,对查询进行优化是必不可少的。
发明内容
本发明的目的在于提供一种数据库查询优化方法及系统,能够取得更好的优化效果,提高查询效率。
为实现上述目的,本发明提供的数据库查询优化方法,包括以下步骤:
1)将查询语句字符串用查询内部表示结构表示;
2)对所述查询内部表示进行特性分析,生成在语义上等价的查询内部表示;
3)对所述在语义上等价的查询内部表示进行语法分析,生成语义上的数据库内部表示;
4)将语义上的数据库内部表示进行查询优化处理,生成最终的执行计划;
5)对最终的执行计划进行解释和执行,生成查询结果或错误信息。
进一步地,所述步骤1)是将查询语句字符串分成多个词法单元并用查询内部表示结构表示。
进一步地,所述步骤2)是根据查询重写规则对所述查询内部表示进行特性分析,生成在语义上等价的查询内部表示。
进一步地,所述查询重写规则包括;
a)将过程性查询转换成描述性查询;
b)将效率较低的谓词转换为等价的效率高的谓词;
c)将查询语句转换成效率高的语句;
d)将查询转换为单个选择语句。
进一步地,所述步骤3)进一步包括以下步骤:对所述在语义上等价的查询内部表示进行语法分析及语义检查,如果语法是正确的,将生成一个语法树,然后再对该语法树进行检查;如果所述在语义上等价的查询内部表示涉及到的表、视图以及相关属性是合法的,则生成一个语义上的数据库内部表示。
进一步地,所述步骤4)进一步包括以下步骤:将查询的语义上的数据库内部表示转化为查询可执行的内部表示形式;对所述查询可执行的内部表示进行逻辑关系的优化,得到查询指令序列;执行操作的优化;执行操作间关系的优化,生成最终的执行计划。
更进一步地,所述逻辑关系的优化是根据表及其选择条件,选择先对哪个表作连接,通过条件类型及相关属性决定其关系代数运算的操作;所述执行操作的优化是针对操作确定其最佳执行效果;所述操作间关系的优化是针对不同的操作序列,进行等价的重新组合。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于长春师范大学,未经长春师范大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610058835.1/2.html,转载请声明来源钻瓜专利网。