Oracle的查询优化程序
1.什么是查询优化程序?
查询优化对于关系数据库的性能,特别是对于执行复杂 SQL 语句的性能而言至关重要。查询优化程序确定执行每一次查询的最佳策略。 例如,查询优化程序选择对于指定的查询是否使用索引,以及在联接多个表时采用哪一种联接技术。这类决策对 SQL 语句的执行性能有很大的影响,查询优化对于每一种应用程序都是关键技术,应用程序涉及的范围从操作系统到数据仓库,从分析系统到内容管理系统。查询优化程序对于应用程序和最终用户是完全透明的。 由于应用程序可能生成非常复杂的 SQL 语句, 查询优化程序必须精心构建、功能强大,以保障良好的执行性能。例如,查询优化程序可转换 SQL 语句,使复杂的语句转换成为等价的但执行性能更好的 SQL 语句。查询优化程序的典型特征是基于开销。在基于开销的优化策略中,对于给定查询生成多个执行计划,然后对每个计划估算开销。查询优化程序选用估算开销最低的计划。
2.Oracle 在查询优化方面提供了什么?
Oracle 的优化程序可称是业界最成功的优化程序。基于开销的优化程序自 1992 年随 Oracle7 推出后,通过 10 年的丰富的实际用户经验,不断得到提高和改进。好的查询优化程序不是基于纯粹的理论假设及谓词在实验室中开发出来的,而是通过适合实际用户需求开发和磨合出来的。
Oracle 的查询优化程序比任何其他查询优化程序在数据库应用程序的应用都要多,而且 Oracle 的优化程序一直由于实际应用的反馈而得到改进。