关系系统和其查询优化.ppt
文本预览下载声明
数据库原理 * * 关系系统及其查询优化 第4章 关系系统 关系系统的定义 关系系统的分类 关系系统的查询优化 关系系统及其查询优化 查询优化的一般准则 关系代数等价变换规则 关系代数表达式的优化算法 优化的一般步骤 4.1 关系系统 支持关系模型的关系数据库管理系统简称关系系统。 下述关系的DBMS不能称为关系系统 不支持关系数据结构的系统 支持关系数据结构,但无δ、π、 运算功能的系统 支持关系数据结构,有δ、π、 运算,但要求定义物理 存取路径的系统 可称为关系系统的DBMS,当且仅当 1)支持关系数据结构(关系数据库) 2)支持δ、π、 运算,且不要求用户定义任何物理存取路径 4.1.1 关系系统的定义 4.1.2 关系系统的分类 4.全关系系统: 支持关系模型的所有特征。在关系完备系统的基础上,进一步支持实体完整性和参照完整性等。DBⅡ,ORACLE,SYBASE, …已接近这个目标。目前尚无全关系系统。 1.表式系统: 仅支持关系数据结构,不支持集合级的操作。(不能算关系系统) 2.(最小)关系系统: 支持关系数据结构,支持δ、π、 运算,且不定义物理路径。 3.关系完备系统: 支持关系数据结构和所有关系代数操作(或功能上与关系代数等价)。DBⅡ,ORACLE,SYBASE,…属于这一类。 关系系统分类 √ √ √ 全关系系统 × √ 表 关系完备的系统 × 选择、投影、连接 表 (最小)关系系统 × × 表 表式系统 完整性约束 数据操作 数据结构 4.2 关系数据库系统的查询优化 4.2.1 关系系统及其查询优化 查询处理的过程 查询语句 查询输出 关系代数表达式 执行计划 语法分析与翻译 执行引擎 优化器 有关数据的统计信息 数据 系统优化 优化器可以从数据字典中获取许多统计信息,从而选择有效的执行计划; 如果数据库的物理统计信息改变了,系统可以自动对查询进行重新优化以选择相适应的执行计划; 优化器可以考虑数百种不同的执行计划; 优化器中包括了很多复杂的优化技术。 实际系统的查询优化步骤 1. 将查询转换成某种内部表示,通常是语法树 2. 根据一定的等价变换规则把语法树转换成标准(优化)形式 3. 选择低层的操作算法 对于语法树中的每一个操作 根据存取路径、数据的尺寸、数据的存储分布、存储数据的聚簇等信息来计算各种执行算法的执行代价 选择代价小的执行算法 4. 生成查询计划(查询执行方案) 常用查询优化技术 用启发式规则来缩减查询计划的搜索空间 利用统计信息估算执行代价 基于代价(目前商品化RDBMS大都采用) 代价模型 集中式数据库 单用户系统:总代价 = I/O代价 + CPU代价 多用户系统:总代价 = I/O代价 + CPU代价 + 内存代价 分布式数据库 总代价 = I/O代价 + CPU代价 [+ 内存代价] + 通信代价 4.2.2 一个实例 例. 求选2号课程的学生姓名 SELECT Student.Sname FROM Student,SC WHERE Student.Sno = SC.Sno AND Cno = ‘2’; 数据量:Student:1000条;SC:10000条;选修2号课程:50条 一个内存块装元组:10个Student或100个SC,内存中可以 存放:5块Student元组和1块SC元组 读写速度:20块/秒 假设: 1. Q1= ПSname(бStudent.Sno=SC.Sno ∧SC.Cno=‘c2‘ (Student×SC))? ① 计算广义笛卡尔积(Student×SC) 读取总块数 = 读Student表块数 + 读SC表遍数 * 每遍块数 = 1000/10+(1000/(10×5)) ×(10000/100) = 2100 读数据时间=2100/20=105秒 中间结果大小 = 1000*10000 = 107 (1千万条元组) 写中间结果时间 =10/20 = 50000秒? ② 选择操作(б) 读数据时间 = 50000秒? ③ 投影(П) 总时间 =105+50000+50000秒 = 100105秒 = 27.8小时 2. Q2= ПSname(бSC.Cno= 2 (Student SC)) ①自然连接( ) 读取总块数= 2100块 读数据时间=2100/20=105秒 中间结果大小=1000
显示全部