第九章查询处理 >9.1查询处理的过程 >92关系代数表达式的转换(重点) >93查询代价的度量 >9,4实现关系运算的拿法代价 >9.5表达式的求值方法 >96查询优化(量点) 10n
1 第九章 查询处理 ➢9.1 查询处理的过程 ➢9.2 关系代数表达式的转换(重点) ➢9.3 查询代价的度量 ➢9.4 实现关系运算的算法代价 ➢9.5 表达式的求值方法 ➢9.6 查询优化(重点)
91查询处理的过程 查询处理进程的三个步骤(见教材P159): (1)语法分析与翻译;(2)查询优化(重点);(3)査询执 行。 查询语句 <语法分析与翻译器 关系代数表达式 数据字典 优化器 查询输出 执行引擎 执行计划」数据字典 数据 图91查询处理过程 U∩
2 9.1 查询处理的过程 查询处理进程的三个步骤(见教材P159): (1)语法分析与翻译;(2)查询优化(重点);(3)查询执 行。 据 查询语句 语法分析与翻译器 关系代数表达式 执行计划 优化器 查询输出 执行引擎 数据字典 数据字典 数 图9.1 查询处理过程
优化器可以从数据字典中获取许多统计信息,例如 关系中的元组数、关系中每个属性值的分布情况等。 优化器可以根据这些信息选择有效的执行计划,而用 户程序则难以获得这些信息。 如果数据库的物理统计信息改变了,系统可以自动 对查询进行重新优化以选择相适应的执行计划。在非 关系系统中必须重写程序,而重写程序在实际应用中 往往是不太可能的。 >优化器可以考虑数百种不同的执行计划,而程序员 般只能考虑有限的几种可能性。优化器中包括了很 多复杂的优化技术,这些优化技术往往只有最好的程 序员才能掌握。系统的自动优化相当于使得所有人都 拥有这些优化技术。 30八
3 ➢优化器可以从数据字典中获取许多统计信息,例如 关系中的元组数、关系中每个属性值的分布情况等。 优化器可以根据这些信息选择有效的执行计划,而用 户程序则难以获得这些信息。 ➢如果数据库的物理统计信息改变了,系统可以自动 对查询进行重新优化以选择相适应的执行计划。在非 关系系统中必须重写程序,而重写程序在实际应用中 往往是不太可能的。 ➢优化器可以考虑数百种不同的执行计划,而程序员 一般只能考虑有限的几种可能性。优化器中包括了很 多复杂的优化技术,这些优化技术往往只有最好的程 序员才能掌握。系统的自动优化相当于使得所有人都 拥有这些优化技术
◆查询优化器 查询优化是影响RDBS性能的关键因素。主要解决下面3个 问题: 问题1:每个查询语句可以翻译成多个等价的关系代数表达 式,应该选择哪一个表达式? 例如有SQL语句: Select student number from student where student number<“s000003” 等价表达式为: >O student number<"s000003"(II student number(student)) >Student number (o student number< " 000003"((student) 40八
4 ◆查询优化器 查询优化是影响RDBMS性能的关键因素。主要解决下面3个 问题: 问题1:每个查询语句可以翻译成多个等价的关系代数表达 式,应该选择哪一个表达式? 例如有SQL语句: Select student_number from student where student_number<“s000003” 等价表达式为: ➢σstudent_number<“s000003”(∏ student_number(student)) ➢∏student_number(σstudent_number<“s000003”((student))
问题2:每个关系表达式中的关系运算可以用不同的算法 来实现,且可以采用不同的索引,应该选择何种算法或 索引? 问题3:对于表达式的求值何种采用计算方法? 以上三个问题的解决的方法形成执行计划。 50八
5 问题2:每个关系表达式中的关系运算可以用不同的算法 来实现,且可以采用不同的索引,应该选择何种算法或 索引? 问题3:对于表达式的求值何种采用计算方法? 以上三个问题的解决的方法形成执行计划