oracle的sql优化

本文深入探讨了Oracle SQL优化,包括优化器的作用、执行计划的解析和优化方法。介绍了CBO的成本计算、执行计划的生成及查看,以及排序合并连接、嵌套循环连接和哈希连接三种表连接方式。此外,还提出了查询优化策略,如避免全表扫描、合理使用索引和避免子查询等。
摘要由CSDN通过智能技术生成

sql优化应该是基于对数据库优化器和执行计划的深入理解,明白sql语句从解析到执行中间的过程,以及优化器是如何选择某一执行路径作为最终的执行计划。

1. 什么是优化器

优化器是数据库中的一个核心子系统,优化器的目的就是按照一定的规则根据目标sql得到最佳的执行计划。oracle 10g以后默认的优化器是CBO,CBO是基于成本的优化器,mysql的优化器也是基于成本的优化器,成本值,即sql语句需要的io流,cup使用率,网络传输啊,以及相关的统计信息,更加这些统计信息选择成本最低的执行路径作为执行计划。如下图是oracle的sql执行流程。图片来自(基于Oracle的sql优化)
在这里插入图片描述

2.执行计划

为了执行sql语句,oracle会进行很多步骤,oracle用来执行目标sql语句的步骤的聚合就是执行计划。
如果使用plsql我们可以很轻松的执行计划,打开plsql按下F5,我们可以看到执行目标sql内部具体的步骤,操作名,谓词信息,列信息,cbo评估出来的结果(即受影响的行),cpu消耗,运行时间等。
在这里插入图片描述
其实plsql也是封装了底层的explain plan 命令。
打开我们的sqlplus
输入e

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值