包头师范学院数据库原理与应用课件 第九章.pptVIP

  • 1
  • 0
  • 约7.9千字
  • 约 66页
  • 2019-05-06 发布于广东
  • 举报

包头师范学院数据库原理与应用课件 第九章.ppt

An Introduction to Database System 信息科学与技术学院计算机系 第九章 关系系统及其查询优化 9.1 关系数据库系统的查询处理 9.2 关系数据库系统的查询优化 9.3 代数优化 9.4 物理优化 9.3 小结 9.1关系数据库系统的查询处理 9.1.1 查询处理步骤 9.1.2 实现查询操作的算法示例 9.1.1 查询处理步骤 查询分析 词法/语法/语义分析 符号名转换 查询检查 语义检查 安全性检查 完整性检查 查询优化 代数优化 物理优化 查询执行 查询计划生成 代码生成 9.1关系数据库系统的查询处理 9.1.1 查询处理步骤 9.1.2 实现查询操作的算法示例 9.1.2 实现查询操作的算法示例 一 选择操作的实现 二 连接操作的实现 9.1.2 实现查询操作的算法示例 一 选择操作的实现 1、简单的全表扫描方法 2、索引(或散列)扫描方法 [例1] Select * from student where 条件表达式 表达式情况: C1: 无条件 ; C2: Sno=‘200215121’ ; C3: Sage 20 ; C4: Sdept = ‘CS’ AND Sage 20 ; 9.1.2 实现查询操作的算法示例 1、简单的全表扫描方法 9.1.2 实现查询操作的算法示例 2、索引(或散列)扫描方法 [例1-C2] Sno上有索引 [例1-C3] Sage上有B+树索引 [例1-C4] Sdept和Sage上都有索引 9.1.2 实现查询操作的算法示例 二 连接操作的实现 1、嵌套循环方法(nested loop) 2、排序-合并方法(sort-merge join) 3、索引连接(Index Join)方法 4、Hash Join方法 [例2] Select * from student , sc where student.sno = sc.sno ; 9.1.2 实现查询操作的算法示例 1、嵌套循环方法 9.1.2 实现查询操作的算法示例 2、排序合并方法 9.1.2 实现查询操作的算法示例 3、索引连接方法 9.1.2 实现查询操作的算法示例 3、Hash Join方法 第四章 关系系统及其查询优化 9.1 关系数据库系统的查询处理 9.2 关系数据库系统的查询优化 9.3 代数优化 9.4 物理优化 9.3 小结 9.2关系数据库系统的查询优化 查询优化的必要性 查询优化极大地影响RDBMS的性能。 ? 查询优化的可能性 关系数据语言的级别很高,使DBMS可以从关系表达式中分析查询语义。 9.2.1 查询优化概述 关系系统的查询优化既是RDBMS的关键技术又是关系系统的优点所在; 大大减轻了用户的负担 。 9.2.1 查询优化概述 由DBMS进行查询优化的好处 用户不必考虑如何最好地表达查询以获得较好的效率 系统可以比用户程序的优化做得更好 (1) 优化器可以从数据字典中获取许多统计信息,而用户程序则难以获得这些信息 由DBMS进行查询优化的好处 (2)如果数据库的物理统计信息改变了,系统可以自动对查询重新优化以选择相适应的执行计划。 在非关系系统中必须重写程序,而重写程序在实际应用中往往是不太可能的。 (3)优化器可以考虑数百种不同的执行计划,而程序员一般只能考虑有限的几种可能性。 (4)优化器中包括了很多复杂的优化技术 9.2.1 查询优化概述 集中式数据库查询开销: 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.2.2 一个实例(续) 假设1:外存: Student:1000条,SC:10000条, 选修2号课程:50条 假设2:一个内存块装元组:10个Student, 或100个SC, 内存中一次可以存放: 5块Student元组, 1块SC元组和若干块连接结果元组 假设3:读写速度:20块/秒 假设4:连接方法:基于数据块的嵌套循环法 9.2.2 一个实例(续

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档