Oracle优化器介绍(精简完善版).doc
Oracle 优化器介绍 Oracle 优化器是 Oracle 数据库管理系统中的一种核心组件,它的主要作用是根据用户提交的 SQL 语句,选择一个最优的执行计划,以便提高数据库的性能和效率。 Oracle 优化器可以分为两种:基于规则的优化器(RBO)和基于成本的优化器(CBO)。 RBO 优化器是 Oracle 早期的优化器,随着 CBO 优化器的逐步发展和完善,在最新的 10g 版本中 Oracle 已经彻底废除了 RBO。RBO 优化器根据可用的访问路径和访问路径的等级来选择执行计划,等级越高的访问路径通常运行 SQL 越慢,如果一个语句有多个路径可走,Oracle 总是选择等级较低的访问路径。 RBO 访问路径有 15 级,分别是: 1. 用 Rowid 定位单行 2. 用 Cluster Join 定位单行 3. 用带有唯一约束或主键的 Hash Cluster Key 定位单行 4. 用唯一约束的字段或主键的字段来定位单行 5. Cluster Join 6. 使用 Hash Cluster Key 7. 使用索引 Cluster Key 8. 使用复合索引 9. 使用单字段索引 10. 用索引进行有界限范围的查找 11. 用索引字段进行无界限的查找 12. 排序合并连接 13. 对索引字段使用 MAX 或 MIN 函数 14. ORDER BY 索引字段 15. 全表扫描 RBO 优化器死板的根据规则来选择执行计划显然不够灵活,在 RBO 中也无法使用物化视图等 Oracle 提供的新特性,因此 Oracle 强烈建议改用 CBO 优化器。 CBO 优化器是 Oracle 的一种基于成本的优化器,它根据可用的访问路径、对象的统计信息、嵌入的 Hints 来选择一个成本最低的执行计划。CBO 主要包含以下组件: * 查询转换器(Query Transformer):查询语句的形式会影响所产生的执行计划,查询转换器的作用就是改变查询语句的形式以产生较好的执行计划。 * 评估器(Estimator):评估器的作用是评估每个可能的执行计划的成本,以便选择最优的执行计划。 * 计划生成器(Plan Generator):计划生成器的作用是根据评估器的评估结果,生成最优的执行计划。 CBO 优化器提供了四种查询转换技术:视图合并(View Merging)、谓词推进(Predicate Pushing)、非嵌套子查询(Subquery Unnesting)和物化视图的查询重写(Query Rewrite with Materialized Views)。 Oracle 优化器是 Oracle 数据库管理系统中的一种核心组件,RBO 优化器是 Oracle 早期的优化器,而 CBO 优化器是 Oracle 的一种基于成本的优化器,CBO 优化器提供了四种查询转换技术,可以根据实际情况选择最优的执行计划,以提高数据库的性能和效率。
剩余11页未读,继续阅读
- 粉丝: 1
- 资源: 11
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于Django和OpenCV的智能车视频处理系统.zip
- (源码)基于ESP8266的WebDAV服务器与3D打印机管理系统.zip
- (源码)基于Nio实现的Mycat 2.0数据库代理系统.zip
- (源码)基于Java的高校学生就业管理系统.zip
- (源码)基于Spring Boot框架的博客系统.zip
- (源码)基于Spring Boot框架的博客管理系统.zip
- (源码)基于ESP8266和Blynk的IR设备控制系统.zip
- (源码)基于Java和JSP的校园论坛系统.zip
- (源码)基于ROS Kinetic框架的AGV激光雷达导航与SLAM系统.zip
- (源码)基于PythonDjango框架的资产管理系统.zip