第七章关系系统及其优化-new.pptVIP

  1. 1、本文档共32页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第七章: 关系系统及其查询优化 关系系统的定义和分类 查询处理 关系系统中的查询优化 关系系统的定义 关系系统: 支持关系数据模型的数据库管理系统(粗略) 关系系统(确切定义): 一个系统可以定义为一个关系系统, 当且仅当它: 支持关系数据库 支持选择、投影和连接运算(自然连接), 对这些运算不要求定义任何物理存取路径 关系系统的分类: 许多关系系统的产品 按E.F.Codd的思想将关系系统分为: 表式系统(a) 最小关系系统(b) 关系完备的系统(c) 全关系系统(d) 关系系统的查询处理: 查询处理的步骤: 为什么需要查询优化? 一个查询实例: 求选修2号课程的学生姓名 SQL表示: select Sname from Students, SC where Students.Sno=SC.Sno and Cno=‘2’; 关系代数表示: Q1= ?sname(?Students.Sno=SC.Sno and Cno=‘2’(Students?SC)) Q2= ?sname(?Cno=‘2’(Students SC)) Q3= ?sname( Students ?Cno=‘2’(SC)) 代价计算 Q1代价计算(仅考虑I/O代价) 计算广义笛卡尔积代价 假定: 在内存中, 存放5块Students元组和一块SC元组, 一块可以装10个Students元组或100个SC元组. 假定: Students有1000个元组,SC有10000个元组, 其中选2号课程的有50个元组 数据只有读到内存才能进行连接 通过读取块数计算I/O代价 读取块数计算方法: Students 1000个元组 SC 10000个元组 读取总块数: 若每秒读写20块, 则花费: 条件:Students 1000个元组, SC 10000个元组 迪卡尔集后后的元组个数为: 103 ?104=107 连接后的中间结果内存放不下, 需暂时写到外存 若每块可装10个完成迪卡尔集后的元组, 则写这些元组需: (107 /10)/20=5 ? 104s 选择操作: 读回需5 ? 104s, 假设选择后剩50个元组,均可放在内存 投影操作: 查询共花费: 105+2 ? 5 ? 104 ? 105 s ? 28小时 Q2= ?sname(?Cno=‘2’(Students SC)) Q2代价计算(仅考虑I/O代价) 计算自然连接代价 也要把数据读到内存进行连接, 但连接结果比笛卡尔积要小得多 读取块数依然为: 花费为2100/20?105s 假设连接结果大小为104个元组, 写到外存需: (104 /10)/20=50s Q2= ?sname(?Cno=‘2’(Students SC)) Q3= ?sname( Students ?Cno=‘2’(SC)) 读取自然连接结果, 执行选择运算, 需50s, 选择结果均可放在内存 投影运算: 总花费为: 105+50+50=205s ? 3.4分钟 Q3代价计算(仅考虑I/O代价) 计算对SC做选择运算的代价 需读SC到内存进行选择运算 读SC块数为: 10000/100=100 花费为: 100/20=5s 选择结果为50个SC元组, 均可放在内存 Q3= ?sname( Students ?Cno=‘2’(SC)) 计算和Students自然连接的 代价 需读Students到内存进行连 接运算 读Students块数为: 1000/10=100 花费为: 100/20=5s 连接结果为50个元组, 均可放在内存 投影运算: 总花费: 5+5=10s 关系系统的查询优化: 关系系统的查询优化由系统完成, 而不是由用户完成 优化器可以从数据字典获取许多统计信息 如果数据库的物理统计信息改变了,优化器可以对查询进行重新优化以选择适应的执行计划 优化器可以考虑数百种不同的执行计划 优化器包括了许多复杂的技术 优化目标: 寻求最优的执行计划, 使查询执行开销尽量小 关系系统的查询优化: 查询优化的一般步骤 将查询转化成内部表示--语法树 根据等价变化规则, 将语法树转化成优化形式 选择低层操作算法 生成查询计划 查询执行开销主要包括: 总代价=I/O代价+CPU代价 多用户数据库执行开销: 总代价=I/O代价+CPU代价+内存代价 关系系统的查询优化: 查询优化的一般准则: 下面的优化策略一般能提高查询效率, 但不一定是最优的 选择运算尽可能先做, 降低中间结果大小 在连接前,对关系适当的进行预处理: 对关系排序(排序合并连接方法)或在连接属性上建索引(索引连接方法) 关系

文档评论(0)

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

分享好文档!

1亿VIP精品文档

相关文档