plsql developer连接oracle数据库执行sql后查看执行计划

一.使用plsql developer 版本8.0.3.1510进行sql的执行

执行后可以按F5进入执行计划页面,或点击图标进入
在这里插入图片描述
如图:
在这里插入图片描述
我这是中文版本的,英文版本的话,
Description:(对应上图的1;)下面的内容分别是我们这条SQL的执行步骤,查看他的缩进量,缩进量最多的步骤最先执行;如果缩进量相同,就按照从上往下的顺序执行。
Object owner:(对应上图的2;)对象的所有者。
Object name:(对应上图的3;)对象名称。
Cost:(对应上图的4;)成本花费。这里可以详细地查看SQL执行的每一步的成本花费。这个数值只是相对来说的,不是实际的时间

二.在执行计划中会 看到表的访问方式:

1.Full Table Scan (FTS) 全表扫描
2.Index Lookup 索引扫描
2.1 index unique scan 索引唯一扫描
 单列唯一索引:通过"=“判断条件时候才会使用,至多返回一条数据。
 多列唯一索引:所有的列都通过”="判断条件时才会使用,且不能有任何一列的值被指定为null。

2.2 index range scan 索引局部扫描
单列唯一索引:通过">"、"<"、">="、"<="、"between"等判断条件时会被使用。

多列唯一索引:全部或部分列(必须包含第一列,否则不会走这条索引)通过">"、"<"、">="、"<="、“between"等判断条件时会被使用。部分列也可以在通过”="判断条件时候被使用。

普通索引:单列索引正常的条件判读都会使用范围扫描,多列的索引必须带有第一列索引的条件判断才会被使用范围扫描。

2.3 index full scan 索引全局扫描
 通常是在使用索引列进行count、sum等函数统计时候使用。
2.4 index fast full scan 索引快速全局扫描,不带order by情况下常发生
2.5 index skip scan 索引跳跃扫描,where条件列是非索引的前导列情况下常发生
 只有当组合索引,且引导列(第一列)没有被使用的情况下,可能会使用索引跳跃扫描。一般发生在引导列的distinct值很少的情况下。
3. Rowid 物理ID扫描

三.运算符

在这里插入图片描述
在这里插入图片描述
1.sort –排序,很消耗资源
一般在sql中使用下面几个语句会产生排序
(1)order by clauses (2)group by (3)sort merge join


Sort unique(sort的目的是取出所有的唯一值)
Sort aggregate(sort的目的是为了聚合)//聚合函数如count()、sum()等就是聚合操作
Sort group by(sort的目的是为了分组)
Sort join(sort的目的是为了merge)
Sort order by(sort的目的是为了有序输出)


2.filter --过滤,如not in、min函数等容易产生
3.view –视图,大都由内联视图产生(可能深入到视图基表)
4.partition view –分区视图

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值