这篇文章主要讲解了“oracle中怎么查看sql执行计划的执行顺序”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“oracle中怎么查看sql执行计划的执行顺序”吧!
查看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才有的新功能
感谢各位的阅读,以上就是“oracle中怎么查看sql执行计划的执行顺序”的内容了,经过本文的学习后,相信大家对oracle中怎么查看sql执行计划的执行顺序这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。