郭文明20030605.ppt
《郭文明20030605.ppt》由会员分享,可在线阅读,更多相关《郭文明20030605.ppt(27页珍藏版)》请在三一文库上搜索。
1、软件学院 郭文明2004.08,数据库系统概论讲义,4. 关系系统及查询优化,关系系统 关系系统的定义 关系系统分类 查询优化 查询优化概念 查询处理过程 优化原理和技术,软件学院 郭文明2004.08,数据库系统概论讲义,4.1 关系系统,关系模型 数据结构 关系操作 完整性 关系系统 笼统讲,支持关系模型的数据库管理系统即为关系系统。 一个系统可定义为关系系统,当且仅当它支持: 关系数据结构。即从用户观点看,数据库是由表构成的,并且只有表这一种结构。 支持选择、投影和(自然)连接运算。对这些运算不必要求定义任何物理存取路径。,软件学院 郭文明2004.08,数据库系统概论讲义,4.1 关系
2、系统,关系系统 思考:仅支持关系数据结构,没有选择、投影和连接运算,能是关系系统吗?。 思考:虽然支持三种运算,但要求定义物理存取路径,能是关系系统吗?。 foxbase,使用索引要求首先建立并打开索引,没有严格遵守关系系统定义。 DB2,Oracle,Sybase,SQLServer、Access、Sleepcat等是关系系统。 Pbase、Easybase、Cobase、OPENBASE、DM2等是关系系统。,软件学院 郭文明2004.08,数据库系统概论讲义,4.1 关系系统,关系系统分类(E.F.Codd思想) (a)表式系统 (b)(最小)关系的 (c)关系完备的 (d)全关系的 说
3、明:圆表示关系数据模型 S(Structure):数据结构 M(Manipulation):数据操纵 I(Integrity):完整性,软件学院 郭文明2004.08,数据库系统概论讲义,4.2 查询优化,一个启发性例子 查询处理概述 关系系统的查询优化 查询优化的一般准则 关系代数等价变换准则 关系代数优化算法 查询优化的步骤,软件学院 郭文明2004.08,数据库系统概论讲义,4.2.1 一个启发性例子,问题的提出 Select s.sname from s,sc where s.sno=sc.sno and o=“c02” 假定sc有10000个记录,s有1000个记录,选修c02课程的
4、选课记录为50个。 方案1: sname (s.sno=o=“c02”(S SC) 方案2: sname (o=“c02” ( S SC) 方案3: sname (S o=“c02”(SC) 思考:分析实现三种方案的办法,哪一种效率更高?,软件学院 郭文明2004.08,数据库系统概论讲义,处理分析,方案1: sname (s.sno=o=“c02”(S SC) 笛卡尔积运算(假定每秒读写20块) 读块数:100块20 遍100块2100,写块数:1000000; 共需时间:1002100/20=50105秒 选择运算 读块数:1000000;共需时间:1000000/20=50000秒 方案
5、1读写磁盘共需5010550000100105秒,S1000条 Sc10000条 c02的50条,100条SC 中记录,10条S中记录,读S一次:1000/10=100块,读SC一次:10000/100=100块,完成乘积需读SC: 10000/10*5=20遍,10条S中记录,10条S中记录,10条S中记录,10条S中记录,块10条记录,写S SC:10000000 /10=1000000块,S SC有 10000000 记录,每,软件学院 郭文明2004.08,数据库系统概论讲义,处理分析,方案2: sname (o=“c02” ( S SC) 自然连接运算(假定每秒读写20块) 读块数:
6、100块20遍100块2100,写块数:1000; 共需时间:3100/20=155秒 选择运算 读块数:1000;共需时间:1000/20=50秒 方案2读写磁盘共需15550205秒,S1000条 Sc10000条 c02的50条,100条SC 中记录,10条S中记录,读S一次:1000/10=100块,读SC一次:10000/100=100块,完成 需读SC: 10000/10*5=20遍,10条S中记录,10条S中记录,10条S中记录,10条S中记录,块10条记录,写S SC:10000 /10=1000块,S SC有 10000 记录,每,软件学院 郭文明2004.08,数据库系统概
7、论讲义,处理分析,方案3: sname (S o=“c02”(SC) 选择运算(假定每秒读写20块) 读块数:100;共需时间:100/20=5秒 自然连接运算 读块数:100,写块数:5; 共需时间:105/20=5秒 方案3读写磁盘共需5510秒,S1000条 Sc10000条 c02的50条,100条SC 中记录,10条S 中记录,读S一次:1000/10=100块,读SC一次:10000/100=100块,100条记录,SC有50 记录,每块,完成 需读S一遍,块10条记录, (SC) S有 50记录,每,写 (SC) S:50/10=5块,软件学院 郭文明2004.08,数据库系统概
8、论讲义,4.2.1 一个启发性例子,以上例子中,显然方案3的执行效率更高。 在执行关系代数表达式中的一个很简单的变化,即先做选择后再做连接,而不是先做连接后做选择,就使得执行的性能有了戏剧性的变化。 如果SC表在属性cno上有索引或哈希,那么第一步读入的元组数将从10000降到50,这将使执行性能比原来有进一步的提高。同样如果S表在属性sno上有索引或哈希,那么第二步读入的元组数将从1000降到50,这将使执行性能比原来又有提高。 以上例子,虽然简单,但足以说明为什么查询优化是必要的,也可以说明在实际中什么样的优化是可能的。,软件学院 郭文明2004.08,数据库系统概论讲义,4.2.2 关系
9、系统的查询优化,对于一个给定的查询,尤其是复杂查询,通常会有许多种可能的策略,查询优化就是能从这许多策略中找出最有效的查询执行计划的一种处理过程。 并不要求一般用户能够写出一个高效处理的查询,而是期望系统能够构造一个能最小化查询执行代价的查询执行计划。 优化一方面出现在关系代数级,即系统尝试找出一个与给定的表达式等价但执行起来更为有效的表达式。另一方面是用于对处理查询选择一个详细的策略,比如使用统计信息、选择可用的特定索引,等等。,软件学院 郭文明2004.08,数据库系统概论讲义,4.2.2 关系系统的查询优化,自动优化系统(优化器)可以在查询优化方面做到以下几点: 从数据字典中获得许多统计
10、信息。比如表的记录数、属性中唯一值得个数。 当统计信息改变时,系统可以自动对查询进行重新优化。 优化器可以考虑一个给定查询的成百上千的执行策略。 优化器可以认为是包含着最优秀程序员的技巧和服务的程序。 优化能力是关系系统提供的一种功能,关系数据库查询优化的目标是:为计算所给定的关系表达式选择一个高效(时间和空间)的执行策略。,软件学院 郭文明2004.08,数据库系统概论讲义,4.2.3 查询处理概述,查询处理分为四个大的阶段: 将查询转换为内部格式 将内部格式转换为规范格式 为执行选择底层过程 生成并选择最低代价的查询计划,源查询,DML处理器,编译后查询,优化器,查询计划,运行时管理器,目
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 文明 20030605
链接地址:https://www.31doc.com/p-2588278.html