欢迎来到天天文库
浏览记录
ID:31358199
大小:107.00 KB
页数:6页
时间:2019-01-09
《关系数据库查询优化策略与研究》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、关系数据库查询优化策略与研究 摘要:数据查询是数据库技术中非常重要的组成部分,查询效率的优劣直接影响数据库的性能。如何高效地进行数据查询,一直是数据库理论研究的重要方向。该文从查询优化的必要性,查询优化的方法等方面进行了讨论。 关键词:查询优化;代数优化;查询树 中图分类号:TP311文献标识码:A文章编号:1009-3044(2016)26-0008-02 1引言 关系数据库是当今应用最广泛的数据库系统。关系数据库支持关系数据模型。关系数据结构非常单一,现实世界中的实体及实体之间的联系都是用关系来表示,在用户看来,关系数据结
2、构就是二维表。常用的关系操作包括查询操作和插入、删除、修改操作两大部分,其中查询操作的表达能力最重要。数据查询是数据库应用中非常重要的组成部分,数据查询是否具备较高的执行效率和反应速度受到数据库设计者和用户的极大关注。 2不同查询方案代价对比6 关系模型中的查询语言早期通常是用代数方法或逻辑方法来表示,分别称为关系代数和关系演算,随后出现一种介于关系代数和关系演算的语言称为结构化查询语言,简称SQL。SQL语言作为关系数据库的标准语言向用户提供了易于掌握、高度非过程化得查询语言。大多数商用数据库都支持SQL语言,用户只需指明“干什么
3、?”不需指出“怎么干。”对同一个查询要求有不同的查询解决方案,查询优化就是尽量在不同的解决方案中找到效率高、代价小的方案。 为了提升数据库系统性能对数据查询进行优化成了必须解决的问题,查询优化技术的发展与应用,也助推了数据库技术的推广与普及。 下面我们通过一个实例对比不同查询方案所花费的代价。 商品销售管理数据库 销售点信息表(销售点编号,城市、地址,联系电话,开设时间) 产品信息表(产品编号,产品名,类型,规格,生产厂家,进货价格) 销售情况表(销售点编号,产品编号,销售量,销售单价) 求销售产品编号为’JD051’这种
4、产品的销售点信息? 用SQL语言表达该查询: Select销售点信息表.* From销售点信息表,销售情况表 Where销售点信息表.销售点编号=销售情况表.销售点编号and产品编号=’JD051’ SQL语言是高度的非过程化语言,同一个查询要求可以有不同的执行方式。下面针对上述查询要求运用关系代数表达式来表示不同的执行方式。 方案1 Π销售点信息表.*(σ销售点信息表.销售点编号=销售情况表.销售点编号∧销售情况表.产品编号=’JD051’(销售点信息表×销售情况表))6 第一种方式需要占用内存空间保留广义笛卡尔积的中
5、间结果,读取数据量过多及耗时较长; 方案2 Π销售点信息表.*(σ产品编号=’JD051’(销售点信息表∞销售情况表)) 第二种方案相比第一种方式减少了中间结果,使用自然连接相比笛卡尔积大大减少了中间结果; 方案3 Π销售点编号(σ产品编号=’JD051’(销售情况表))∞销售点信息表 第三种方式减少了数据读取量,中间结果相比第二种情况更少。总的查询时间最短、查询代价最少。 以上三种表达式虽然等价,但其执行的查询策略不同,数据规模越大,查询所花费的代价差别就越大。通过三种不同查询方式的对比,说明查询优化的必要性,选择合适的
6、查询策略将大大减少查询时间、降低查询代价,因此查询优化问题一直是数据库研究的重点。 3关系数据库查询处理过程 当用户发出查询请求,要采用不同的处理步骤对原始查询进行转换,这些转换工作必须在系统处理查询请求和返回查询结果前完成。关系数据库查询处理过程如图1所示。 图1 主要步骤:语法分析与翻译处理,查询优化处理,执行。6 4查询优化技术分类 查询优化技术一般分为代数优化和非代数优化(物理结构优化)。 1)代数优化,通过对查询语句进行变换,改变基本操作的次序,使查询语句执行起来更有效,这种查询优化仅涉及查询语句本身,而不涉
7、及实际存取路径,称为独立于存取路径的优化,或代数优化。 查询是由高级查询语言表示的对数据库的一个或一组操作的集合,通常由投影、选择、连接、笛卡尔积等操作符组成。通过语法分析功能分析查询语句的正确性、完整性、有效性,并将其转换为等价关系代数查询树,如图2。 根据关系代数等价变换规则,查询树可以按以下方法进行变换: 方法1:下移选择和投影运算,以减少中间结果的元组数和参与运算的关系的规模; 方法2:将某些选择运算与笛卡尔积运算相结合; 方法3:同时执行同一个关系上的选择、投影运算,减少对关系的扫描次数; 方法4:将连接运算与投影
8、运算结合起来执行。 图2可变换为图3。 对比图2和图3选择运算和投影运算优先执行,减少了查询中间结果的元组数,大大降低了参与连接运算的关系规模。6 在制定具体的查询策略时应尽量减少对数据表的访问,减少
此文档下载收益归作者所有