421查询优化概述 查询优化的必要性 查询优化极大地影响 RDBMS的性能 查询优化的可能性 n关系数据语言的级别很高,使DBMS可 以从关系表达式中分析查询语义 An Introduction to Database System
An Introduction to Database System 4.2.1 查询优化概述 ◼ 查询优化的必要性 ◼ 查询优化极大地影响RDBMS的性能。 ◼ 查询优化的可能性 ◼ 关系数据语言的级别很高,使DBMS可 以从关系表达式中分析查询语义
由DBMS进行查询优化的好处 用户不必考虑如何最好地表达查询以获 得较好的效率 系统可以比用户程序的优化做得更好 (1)优化器可以从数据字典中获取许多统计信息, 而用户程序则难以获得这些信息 An Introduction to Database System
An Introduction to Database System 由DBMS进行查询优化的好处 ◼ 用户不必考虑如何最好地表达查询以获 得较好的效率 ◼ 系统可以比用户程序的优化做得更好 (1) 优化器可以从数据字典中获取许多统计信息, 而用户程序则难以获得这些信息
由DBMS进行查询优化的好处 (2)如果数据库的物理统计信息改变了,系统可以自动对查 询重新优化以选择相适应的执行计划。 在非关系系统中必须重写程序,而重写程序在实际应用中 往往是不太可能的 (3)优化器可以考虑数百种不同的执行计划,而程序员一般 只能考虑有限的几种可能性。 (4)优化器中包括了很多复杂的优化技术 ntroduction to Database System
An Introduction to Database System 由DBMS进行查询优化的好处 (2)如果数据库的物理统计信息改变了,系统可以自动对查 询重新优化以选择相适应的执行计划。 在非关系系统中必须重写程序,而重写程序在实际应用中 往往是不太可能的。 (3)优化器可以考虑数百种不同的执行计划,而程序员一般 只能考虑有限的几种可能性。 (4)优化器中包括了很多复杂的优化技术
查询优化目标 ■查询优化的总目标 选择有效策略,求得给定关系表达式的值 实际系统的查询优化步骤 1.将查询转换成某种内部表示,通常是语法树 2.根据一定的等价变换规则把语法树转换成标准 (优化)形式 An Introduction to Database System
An Introduction to Database System 查询优化目标 ◼ 查询优化的总目标 选择有效策略,求得给定关系表达式的值 ◼ 实际系统的查询优化步骤 1. 将查询转换成某种内部表示,通常是语法树 2. 根据一定的等价变换规则把语法树转换成标准 (优化)形式
实际系统的查询优化步骤 3.选择低层的操作算法 对于语法树中的每一个操作 计算各种执行算法的执行代价 ■选择代价小的执行算法 4.生成查询计划(查询执行方案) 查询计划是由一系列内部操作组成的。 An Introduction to Database System
An Introduction to Database System 实际系统的查询优化步骤 3. 选择低层的操作算法 对于语法树中的每一个操作 ◼ 计算各种执行算法的执行代价 ◼ 选择代价小的执行算法 4. 生成查询计划(查询执行方案) ◼ 查询计划是由一系列内部操作组成的