第三部分 系统篇
ch.7查询处理与查询优化
查询是数据库系统中使用最频繁、最基本的操作。 对于一个给定的查询,通常会有许多种可能的执行策 略,查询优化就是从众多策略中找出高效执行策略的 处理过程,是DBMS实现的关键技术,对系统性能有很 大影响。
1、引言
2、代数优化 3、物理优化
2012年12月19日星期
2012年12月19日星期
数据库教程(06.8)
3
ch.7
(3)、一个启发性的例子
1.引言
例7-1 设有Shop(商店),Customer(顾客),SC(购物关系)三个关系,关系模 式如下: Shop (S#,Sname,Address) Customer (C#,Cname,Address) SC(S#,C#, Item, Quantity,Price) 查询是“给出销售彩电的商店名称” 1)、用SQL语句表达如下: SELECT Sname FROM Shop,SC WHERE Shop.S# = SC.S# AND Item=’彩电’ 2)、用关系代数表达式表达这个查询语句: ΠSname(σShop.S# = SC.S# ∧ Item=’彩电’ (Shop×SC)) 选择条件Shop.S# = SC.S#与笛卡儿积组合成连接操作: ΠSname(σItem=’彩电’(Shop⋈ SC)) 选择条件Item=’彩电’还可以移到连接中的关系SC前面: ΠSname(Shop⋈σItem=’彩电’(SC))
3.物理优化
数据库实现的基础是文件,对数据库的任何操作最终都会落实为 对文件的操作。关系数据库中,数据和存取路径分离。后者对用户是 隐蔽的,可以动态建立、删除,例如顺序扫描、索引、散列等。理论 研究和实际应用说明,选择合适的存取路径,能够收到显著的优化效 果,应成为优化的重点。然而,前面介绍的代数优化并没有利用存取 路径的便利,对各种操作的执行策略进行选择,只是利用一些变换规 则来调整和重新安排操作的次序和组合,优化效果也是很有限的。因 此,充分考虑存取路径,利用它们进一步改善查询效率,具有非常重 要的意义。 依赖于存取路径的规则优化,即物理优化,决定如何执行查询, 基本策略是将表达式看成是由一系列关系操作(选择、连接、投影、 集合运算等)构成,各种操作间保持一定的相互依赖关系。对于每个 可能的操作,都具有一组可用的实现技术. (1)、选择 (2)、连接 (3) 、投影 (4)、集合运算