- 1、本文档共24页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
关系查询和查询优化.ppt
An Introduction to Database System 第九章 关系查询处理和查询优化 9.1 关系数据库系统的查询处理 9.2 关系数据库系统的查询优化 9.3 代数优化 9.4 物理优化 9.5 小结 9.1 关系数据库系统的查询处理 查询分析 查询检查 查询优化 查询执行 9.1.2 实现查询操作的算法示例 一、选择操作的实现 [例1] SELECT * FROM student WHERE 条件 C1:无条件; C2:Sno=‘200215121’; C3:Sage20; C4:Sdept=‘CS’ AND Sage20 9.2 关系数据库系统的查询优化 9.2.1 查询优化概述 由DBMS进行查询优化的好处 用户不必考虑如何最好地表达查询以获得较好的效率,系统可以比用户程序的优化做得更好。 查询优化目标 查询优化的总目标——选择有效策略,求得给定关系表达式的值 实际系统的查询优化步骤 1. 将查询转换成某种内部表示,通常是语法树 2. 根据一定的等价变换规则把语法树转换成标准 (优化)形式 3.选择低层的操作算法 对于语法树中的每一个操作 计算各种执行算法的执行代价 选择代价小的执行算法 4. 生成查询计划(查询执行方案) 查询计划是由一系列内部操作组成的。 基于代价模型的优化算法 集中式数据库 单用户系统 总代价 = I/O代价 + CPU代价 多用户系统 总代价 = I/O代价 + CPU代价 + 内存代价 分布式数据库 总代价 = I/O代价 + CPU代价[+ 内存代价] + 通信代价 9.2.2 一个实例 [例3] 求选修了课程C2的学生姓名 ? SELECT Student.Sname FROM Student, SC WHERE Student.Sno=SC.Sno AND SC.Cno=2; 9.3 代数优化 基于关系代数等价变换规则的优化方法为代数优化 代数优化策略是通过对关系代数表达式的等价变换来提高查询效率; 关系代数表达式的等价是指用相同的关系代替两个表达式中相应的关系所得到的结果是相同的 两个表达式E1和E2是等价的,记为E1 ≡ E2 9.3.1 关系代数表达式等价变换规则 常用的等价变换规则 ?2. 连接、笛卡尔积的结合律 3. 投影的串接定律 π A1,A2, ?,An(π B1,B2, ?,Bm(E))≡ π A1,A2, ?,An (E) 假设: 1) E是关系代数表达式 2) Ai(i=1,2,…,n), Bj(j=l,2,…,m)是属性名 3) {A1, A2, …, An}构成{Bl,B2,…,Bm}的子集 4. 选择的串接定律 бF1 ( б F2(E))≡ бF1∧ F2(E) 选择的串接律说明 选择条件可以合并 这样一次就可检查全部条件。 6. 选择与笛卡尔积的交换律 (1) 假设:F中涉及的属性都是E1中的属性 бF (E1×E2)≡бF (E1)×E2? (2) 假设:F=F1∧F2,并且F1只涉及E1中的属性, F2只涉及E2中的属性 则由上面的等价变换规则1,4,6可推出: бF(E1×E2) ≡б F1(E1)×бF2 (E2)? (3) 假设: F=F1∧F2,并且 F1只涉及E1中的属性, F2涉及E1和E2两者的属性 бF(E1×E2)≡б F2(бF1(E1)×E2) 它使部分选择在笛卡尔积前先做 7. 选择与并的分配律 假设:E=E1∪E2,E1,E2有相同的属性名 бF(E1∪E2)≡ бF(E1)∪ бF(E2) ? 8. 选择与差运算的分配律 假设:E1与E2有相同的属性名 бF(E1-E2)≡ бF(E1) - бF(E2) 9. 选择对自然连接的分配律 бF(E1∪E2)≡ бF(E1)∪ бF(E2) ? F只涉及E1与E2的公共属性 10. 投影与笛卡尔积的分配 假设:E1和E2是两个关系表达式, A1,…,An是E1的属性, B1,…,Bm是E2的属性 π A1,A2, …,An,B1,B2, …,Bm (E1×E2)≡ π A1,A2, …,An(E1)× π B1,B2, …,Bm(E2) 9.3.2 查询树的启发式优化 启发式规则的代数优化,是对关系代数表达式的查询树进行优化,其典型的规则有: 某些选择运算+在其前面执行的笛卡尔积=== 连接运算 关系代数表达式的优化算法 算法:关系表达式的优化。 输入:一
文档评论(0)