第3章DataBase查询优化.ppt
文本预览下载声明
An Introduction to Database System 第三章 关系系统及其查询优化 3.1 关系系统 3.2 关系系统的查询优化 3.3 小结 关系系统的定义 一个数据库管理系统可定义为关系系统,当且仅 当它至少支持: 1. 关系数据库(即关系数据结构) 系统中只有表这种结构 2. 支持选择、投影和(自然)连接运算 对这些运算不要求用户定义任何物理存取路径 对关系系统的最低要求 不支持关系数据结构的系统显然不能称为关系系统 仅支持关系数据结构,但没有选择、投影和连接运算功能的系统仍不能算作关系系统。 原因:不能提高用户的生产率 支持选择、投影和连接运算,但要求定义物理存取路径,这种系统也不能算作真正的关系系统。 原因:就降低或丧失了数据的物理独立性 选择、投影、连接运算是最有用的运算 3.1.2 关系系统的分类 分类依据:支持关系模型(三要素)的程度 分类 ⒈ 表式系统:支持关系数据结构(即表) ⒉ (最小)关系系统 支持:关系数据结构 选择、投影、连接关系操作 ⒊ 关系完备的系统 支持:关系数据结构 所有的关系代数操作 ⒋ 全关系系统 支持:关系模型三要素 特别是:数据结构中域的概念 关系系统的分类 (续) 第三章 关系系统及其查询优化 3.1 关系系统 3.2 关系系统的查询优化 3.3 小结 3.2 关系系统的查询优化 3.2.1 查询优化概述 3.2.2 查询优化的必要性 3.2.3 查询优化的一般准则 3.2.4 关系代数等价变换规则 3.2.5 关系代数表达式的优化算法 3.2.6 优化的一般步骤 什么是反应时间 3.2.1 查询优化概述 查询优化的必要性 数据的物理独立性,即数据的存取路径、存储结构、存取策略对用户透明,查询效率不如非关系数据库。 查询优化极大地影响RDBMS的性能。 查询优化并不只是DBMS的任务,用户的查询计划质量直接影响优化效率和结果,因此部分用户有必要了解查询优化的概念和相关技术,写出‘好’的查询,执行效率高的语句。 ? 查询优化的可能性 关系数据语言的语义级别高,使DBMS可以从关系表达式中分析查询语义。 由DBMS进行查询优化的好处 用户不必考虑如何最好地表达查询以获得较好的效率。 系统可以比用户程序的优化做得更好 (1) 优化器可以从数据字典(DD)中获取许多统计信息,而用户程序则难以获得这些信息 。 (2)如果数据库的物理统计信息改变了,系统可以自动对查询重新优化以选择相适应的执行计划。 在非关系系统中必须重写程序,而重写程序在实际应用中往往是不太可能的。 (3)优化器可以考虑数百种不同的执行计划,而程序员一般只能考虑有限的几种可能性。 (4)优化器中包括了很多复杂的优化技术 数据库是如何处理SQL语句的? 查询优化目标 查询优化的总目标 选择有效策略,求得给定关系表达式的值 实际系统的查询优化步骤 1. 将查询转换成某种内部表示,通常是语法树。 2. 根据一定的等价变换规则把语法树转换成标准 (优化)形式。 [工具]:关系代数等价变换规则、关系代数表达式的优化算法 3. 选择低层的操作算法 对于语法树中的每一个操作 计算各种执行算法的执行代价 选择执行代价小的执行算法 4. 生成查询计划(查询执行方案) 查询计划是由一系列内部操作组成的。 3.2.2 查询优化的必要性 例:求选修了课程C2的学生姓名 ? SELECT Student.Sname FROM Student, SC WHERE Student.Sno=SC.Sno AND SC.Cno=2; 分析:执行策略1、2、3的效率(159页) 3.2.3 查询优化的一般准则 (161页) 选择运算应尽可能先做 ? 目的:减小中间关系 在执行连接操作前对关系适当进行预处理 按连接属性排序(排序合并连接) 在连接属性上建立索引(索引连接)? 投影运算和选择运算同时做 目的:避免重复扫描关系 将投影运算与其前面或后面的双目运算结合 目的:减少扫描关系的遍数 某些选择运算+在其前面执行的笛卡尔积 === 连接运算 例:бStudent.Sno=SC.Sno (Student×SC) ? ? Student SC 提取公共子表达式 3.2.4 关系代数等价变换规则 关系代数表达式等价 指用相同的关系代替两个表达式中相应的关系所得到的结果是相同的 上面的优化策略大部分都涉及到代数表达式的变换 常用的等价变换规则 设E1、E2等是关系代
显示全部