|
|
51CTO旗下网站
|
|
移动端

4.1.3 关系数据库系统的查询优化(10)

《新编数据库原理习题与解析》第4章关系系统及其查询优化,本章介绍关系系统的定义和分类;查询优化的一般准则;关系代数等价变换规则。本节为大家介绍关系数据库系统的查询优化。

作者:李春葆来源:清华大学出版社|2013-06-23 21:51

4.1.3  关系数据库系统的查询优化(10)

4. 查询优化的算法

算法:关系代数表达式的优化。

输入:一个关系代数表达式的语法树。

输出:计算该表达式的程序。

方法:

(1)利用规则(4)把形如бF1∧F2∧…∧Fn (E)变换为:

  1. бF1(бF2(…(бFn(E))…)) 

(2)对每一个选择,利用规则(4)~(8)尽可能将它移到树的叶端。

(3)对每一个投影,利用规则(3)、(5)、(9)、(10)中的一般形式尽可能将它移到树的叶端。

(4)利用规则(3)~(5)将选择和投影的串接合并成单个选择、单个投影或一个选择后跟一个投影,使多个选择或投影能同时进行,或在一次扫描中全部完成。

(5)将上述得到的语法树的内结点分组,每一双目运算(×、 、∪、-)和它所有的直接祖先为一组(这些直接祖先是б、π运算)。如果其后代直到叶子全部是单目运算,则将它并入该组。

(6)生成一个程序,每组结点的计算是程序中的一步。各步的顺序是任意的,只要保证任何一组的计算不会在它的后代组之前计算即可。

5.优化的一般步骤

优化的大致步骤如下:

(1)把查询转换成语法树。语法树有多种形式,如关系代数语法树。

(2)把语法树转换成标准(优化)形式。优化器将应用等价转换规则反复地对查询表达式进行尝试性转换,将原始的语法树转换成优化的形式。

(3)选择低层的存取路径。根据数据字典中的存取路径、数据的存储分布以及聚簇情况等信息来选择具体的执行算法,进一步改善查询效率。这一步称为物理优化。

(4)生成由一系列内部操作组成的查询执行方案,选择代价最小的策略。

【例1】对于第3章的样本表,给出以下SQL语句的优化语法树。

  1. SELECT DISTINCT 课程名  
  2. FROM student S,course C,score SC  
  3. WHERE S.学号=SC. 学号 AND C. 课程号=SC. 课程号 AND S.班号='09031' 

该查询语句的结果如下:

  1. 课程名  
  2. --------------  
  3. 操作系统  
  4. 计算机导论 

该查询语句对应的关系代数表示为:

π课程名(бs.班号='09031' AND C. 课程号=SC. 课程号 AND S.学号=SC. 学号(S   C   SC))

步骤1:利用变换规则(4)转换为:

π课程名(бs.班号='09031' (бC. 课程号=SC. 课程号 (бS.学号=SC. 学号(S   SC)   C)))

对应的关系代数语法树如图4.1所示。

步骤2:尽可能将选择移到树的叶端。

步骤3:尽可能将投影移到树的叶端,得到优化后的语法树如图4.2所示。

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

订阅专栏+更多

活学活用 Ubuntu Server

活学活用 Ubuntu Server

实战直通车
共35章 | UbuntuServer

226人订阅学习

Java EE速成指南

Java EE速成指南

掌握Java核心
共30章 | 51CTO王波

87人订阅学习

Mysql DBA修炼之路

Mysql DBA修炼之路

MySQL入门到高阶
共24章 | 51CTO叶老师

483人订阅学习

读 书 +更多

SQL实用简明教程(第2版)

SQL(结构化查询语言)是数据库系统的通用语言,利用它可以用几乎同样的语句在不同的数据库系统上执行同样的操作,在数据库系统的开发中有着...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊

51CTO服务号

51CTO播客