查询处理与优化课件_第1页
查询处理与优化课件_第2页
查询处理与优化课件_第3页
查询处理与优化课件_第4页
查询处理与优化课件_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 查询处理与查询优化目 录 查询处理9.1 查询优化9.2查询处理查询处理(query processing)是指从数据库中提取数据时所涉及的一系列活动。 语法分析与翻译 查询优化 查询执行查询处理过程语法分析与翻译器查询处理开始之前,系统必须将查询语句翻译成可使用的形式。 语法分析与翻译阶段的主要工作有:检查用户查询的语法,利用数据字典验证查询中出现的关系名、属性名等是否正确;构造该查询语句的语法分析树表示,并将其翻译成关系代数表达式。 查询处理过程查询执行计划与查询优化器一个给定的查询任务,一般都会有多种计算结果的方法 例如,考虑如下查询 select studentName from S

2、tudent where classNo=CS0701 and sex=女 该查询语句可翻译成如下关系表达式中的任意一个classNo=CS0701(sex=女(studentName(Student)sex=女(classNo=CS0701(studentName(Student)classNo=CS0701(studentName(sex=女(Student)studentName(sex=女(classNo=CS0701(Student)查询处理过程查询执行计划与查询优化器执行一个查询,不仅需要提供关系代数表达式,还要对该表达式加上注释说明如何执行每个操作加了“如何执行”注释的关系代数运

3、算称为执行原语用于执行一个查询的原语操作序列称为查询执行计划不同的查询执行计划会有不同的代价构造具有最小查询执行代价的查询执行计划是DBMS的责任这项工作称为查询优化,由查询优化器来完成查询处理过程关系数据库系统和非过程化的SQL语言能够取得巨大成功关键是得益于查询优化技术的发展查询优化是影响RDBMS性能的关键因素查询执行引擎根据输入的查询执行计划,调用相关算法实现查询计算,并将计算结果返回给用户有效地对内存缓冲区进行管理是影响查询执行性能的非常重要的方面查询优化的必要性不同查询执行计划的执行时间分析Q1 =SN(s.s# = sc.s# sc.c# = c2(SSC)Q2 =SN(sc.c

4、# = c2(S SC)Q3 =SN(S sc.c# = c2(SC) (1)第一种情况计算广义笛卡尔积作选择操作作投影操作执行总时间为105s (2)第二种情况计算自然连接作选择操作作投影操作执行总时间为205s (3)第三种情况先对SC作选择运算作连接运算作投影操作执行总时间为10s查询优化概述 例:找出2008级修读“数据库系统概论”课程的学生姓名。初始关系表达式为:studentName(grade=2008courseName=DB(Class Student) (Score Course) 转换后的关系代数表达式为: studentName(grade=2008(Class) St

5、udent) (Score courseName=DB(Course)查询优化概述 查询优化分3步进行逻辑优化,产生逻辑上与给定关系代数表达式等价的表达式;代价估计,估计每个执行计划的代价;物理优化,对所产生的表达式以不同方式作注释,产生不同的查询执行计划。查询优化器中第步和第步是交叉进行的先产生一些等价的表达式并加以注释再进一步产生一些等价表达式并加以注释,依此类推第步是基于系统收集的一些统计信息,如关系的大小、属性值的分布、B+树索引的深度等,对一个执行计划的代价进行事先估计关系表达式转换 转换实例 studentName(grade=2008courseName=DB(Class Stu

6、dent) (Score Course) studentName(grade=2008(Class) Student) Score) courseName=DB(Course)步骤:应用等价规划(1) ,表达式可以转换为 studentName(grade=2008(courseName=DB(Class Student) (Score Course)两次应用等价规划(7)的第条 ,表达式可以转换为 studentName(grade=2008(Class Student) courseName=DB(Score Course)转换实例studentName(grade=2008courseN

7、ame=DB(Class Student) (Score Course) studentName(grade=2008(Class) Student) Score) courseName=DB(Course)步骤:再应用两次等价规划(7)的第条,表达式可以转换为 studentName(grade=2008(Class) Student) (courseName=DB(Score) Course)第四,应用等价规划(5),表达式可以转换为 studentName(grade=2008(Class) Student) (Course courseName=DB(Score)应用等价规划(6)的第条, 得到所需要的表达式。关系表达式转换 连接运算的次序

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论