ITPub博客

首页 > 数据库 > Oracle > oracle中查看SQL执行计划

oracle中查看SQL执行计划

原创 Oracle 作者:james210 时间:2019-11-22 13:02:09 0 删除 编辑

查看sql执行计划的执行顺序:

先从最开头一直连续往右看,直到看到最右边并列的地方,对不不并列的,靠右的先执行,如果看到并列的,就从上往下看,对于并列的部分,上面的先执行


oracle中常见的执行计划

一、表的常见执行计划

1、table access full

2、table access by user rowid

3、table access by index rowid

二、B tree索引相关的执行计划

1、index unique scan

2、index rang scan

3、index full scan

4、 index skip scan

5、index fast full scan

三、与位图索引相关的执行计划

位图索引(物理存储结构为:被索引的键值,对应rowid的上限,对应rowid的下限,位图段(bitmap segment))

位图段:最大只能为位图索引叶子块大小的1/2

位图索引的物理存储结构,决定了位图索引的锁的粒度在位图段上,所以位图索引没有行锁,要锁就是锁位图段,而多个数据行可能对应同一个位图段,所以位图索引不适用高并发,频繁修改的OLTP,会导致严重的并发问题,甚至死锁

位图索引相比btree的几个优势

1、位图段是压缩存储的,所以当索引列的distinct少是,位图索引会明显的节省存储空间

2、需要在多个列上建索引,位图索引会显著减少空间

3、位图所以可以快捷实现某些and 和or的操作,因为位图索引可以实现快捷的按位运算

相关的执行计划

1、位图索引单键值扫描bitmap index single value

2、bitmap index rang scan

3、bitmap index full scan

4、 bitmap index fast full scan

5、bitmap and

6、bitmap or

7、bitmap minus

使用完位图索引后会将结果转换为rowid

bitmap conversion to rowids


四、与表连接相关的执行计划

hash join

nested loops

merge join sort join

hash join anti

nested loops anti

merge join anti sort join

hash join semi

nested loops semi

merge join semi sort join


五、其他典型的执行计划

and equal (index merge)

index join

view 

filter 一种改良的嵌套循环连接,不像嵌套循环连接那样,驱动结果集中有多少记录,就要访问多少次被驱动表

sort ,分以下几种,执行计划中出现了sort 不一定代表必须排序,比如sort aggregate 和buffer sort有可能就不排序

sort aggregate

sort unique

sort join

sort group by

sort order by

buffer sort(统计信息中的sort(memory)和sort(disk)对buffer sort不一定是准的,即使有数值,也可能排序,也可能不排序),需要通过类似10032事件,或者 select * from table(dbms_xplan.display_cursor('ggtpk4y6089ma',0,'advanced'));来查看具体的信息确定是不是排序了


union/union all

union all 仅对结果集做合并,union相当于先union all再对结果集sort unique


concat


connect by

select empno,ename,mgr from emp start with empno=7839 connect by prior empno=mgr



六、ORACLE里执行计划的稳定

1、使用sql profile来稳定执行计划 dbms_sqltune

两种类型 automatic 和manual

automatic不能锁定执行计划,需要与sql的原统计信息相结合,只能调整执行计划

manual 可以很好的稳定执行计划,这是automatic所不具备的

2、SPM (SQL PLAN MANAGEMENT)

11G才有的新功能

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26031282/viewspace-2665329/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2011-11-07

  • 博文量
    17
  • 访问量
    12084