关系数据库查询优化策略与研究..docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
关系数据库查询优化策略与研究.

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

您可能关注的文档

文档评论(0)

linsspace + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档