第五章查询处理与查询优化.pptVIP

  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文档。上传文档
查看更多
第五章查询处理与查询优化

第五章 查询优化 查询处理概述 查询处理概述 主要内容 语法分析(Parsing) 逻辑查询计划生成(Logical Query Plan) 查询重写(Query Rewrite) 查询计划代价估计(Cost Estimation) 物理查询计划选择(Physical Query Plan) 一、语法分析 构造语法分析树(Parsing Tree) 1、SQL查询语法分析 SELECT title FROM StarsIn WHERE starName IN ( SELECT name FROM MovieStar WHERE birthdate LIKE ‘%1960’ ); (Find the movies with stars born in 1960) 1、SQL查询语法分析 二、初始逻辑查询计划生成 将语法分析树转换为代数表达式树——逻辑查询计划 Typical:关系代数 1、关系代数回顾 ?:并 ?:交 ?:选择 ?:投影 -:差 :自然连接 :Theta 连接 …… 2、关系代数与SQL 关系代数是SQL的代数表达 关系代数表达式 ? SQL查询 3、逻辑查询计划 与语法分析树类似 内结点:关系运算符 叶结点:关系 例:逻辑查询计划生成 SELECT title FROM StarsIn WHERE starName IN ( SELECT name FROM MovieStar WHERE birthdate LIKE ‘%1960’ ); 例:逻辑查询计划生成 三、查询重写 将初始逻辑查询计划转换为优化的逻辑查询计划(Maybe) 基于代数转换规则 1、查询重写例子 2、转换规则 Transformation rules 运用转换规则,将一个代数表达式转换为另一个等价的代数表达式 2、转换规则 涉及自然连接、并、交、笛卡儿积的交换律和结合律 R×S=S×R;(R×S)×T=R×(S×T) R?S=S?R;(R?S)?T=R?(S?T) R∪S=S∪R;(R∪S)∪T=R∪(S∪T) R∩S=S∩R;(R∩S)∩T=R∩(S∩T) 2、转换规则 (R?S)?T: 中间结果R?S产生3条记录 R?(S?T):中间结果S?T产生1条记录 2、转换规则 选择上的转换规则 ? C1 ? C2(R)= ? C1(σC2(R)) ? C1 ? C2(R) = (? C1(R)) ∪s ( ? C2(R)) 2、转换规则 包并 2、转换规则 Example: R={a,a,b,b,b,c} ? C1 ? C2(R) ={a,a,b,b,b,c} ? C1 (R) ={a,a,b,b,b} ? C2(R) ={b,b,b,c} SUM: ? C1 ? C2(R) ≠ (? C1(R)) ∪ ( ? C2(R)) MAX ? C1 ? C2(R) = (? C1(R)) ∪ ( ? C2(R)) 2、转换规则 SQL Union All ---包并(SUM) Union---集合并 例如,Student表和Staff表 “返回所有男学生和男教师的姓名” 2、转换规则 选择+自然连接 2、转换规则 选择+自然连接 2、转换规则 选择+自然连接:推导例子 2、转换规则 投影+选择 2、转换规则 投影+自然连接 3、转换规则的几点思考 转换的最终目的 减少查询的开销(I/O次数) 转换的直接目的 减少查询执行时的中间关系大小(元组数) 减少元组的大小 3、转换规则的几点思考 No transformation is always good Usually good: early selections Where we are? 语法分析(Parsing) 逻辑查询计划生成(Logical Query Plan) 查询重写(Query Rewrite) 查询计划代价估计 物理查询计划选择(Physical Query Plan) 四、查询代价估计(Cost Estimation) 四、查询代价估计(Cost Estimation) 四、查询代价估计(Cost Estimation) 中间关系大小估计 I/O代价估计 物理查询计划生成 1、中间结果的大小估计 需要使用一些统计量(statistics) T(R) : R的元组数 S(R) : R中每个元组的大小(bytes) V(R, A) : R的属性A上的不同值数 B(R):容纳R所有元组所需的块数 These statistics should be hold in the database! 1、中间结果的大小估计 1、中间结果的大小估计 W = R1 × R2 的大小估计 T(W) = T(R1) * T(R2) S(W)

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档