sql执行计划解析案例(二)
sql执行计划解析案例(二)
SQL> select addr,ts#,file#,dbarfil,dbablk,tch from x$bh where rownum<20 order by tch desc
2 ; ADDR TS# FILE# DBARFIL DBABLK TCH
---------------- ---------- ---------- ---------- ---------- ----------
00007F64CC0825A0 0 1 1 8210 18
00007F64CC0825A0 0 1 1 233 10
00007F64CC0825A0 0 1 1 95203 4
00007F64CC0825A0 0 1 1 4571 3
00007F64CC0825A0 0 1 1 95436 2
00007F64CC0825A0 0 1 1 77851 2
00007F64CC0825A0 0 1 1 52289 1
00007F64CC0825A0 0 1 1 65536 1
00007F64CC0825A0 1 2 2 42914 1
00007F64CC0825A0 0 1 1 96368 1
00007F64CC0825A0 0 1 1 57093 1 ADDR TS# FILE# DBARFIL DBABLK TCH
---------------- ---------- ---------- ---------- ---------- ----------
00007F64CC0825A0 0 1 1 22156 1
00007F64CC0825A0 0 1 1 34704 1
00007F64CC0825A0 0 1 1 17119 1
00007F64CC0825A0 0 1 1 30133 1
00007F64CC0825A0 0 1 1 38809 1
00007F64CC0825A0 0 1 1 21224 1
00007F64CC0825A0 0 1 1 17818 1
00007F64CC0825A0 0 1 1 55928 1 19 rows selected. SQL> set autotrace trace explain
SQL> r
1 select addr,ts#,file#,dbarfil,dbablk,tch from x$bh where rownum<20 order by tch desc
2* Execution Plan
----------------------------------------------------------
Plan hash value: 2913638504 ---------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
---------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 19 | 1349 | 1 (100)| 00:00:01 |
| 1 | SORT ORDER BY | | 19 | 1349 | 1 (100)| 00:00:01 |
|* 2 | COUNT STOPKEY | | | | | |
| 3 | FIXED TABLE FULL| X$BH | 19 | 1349 | 0 (0)| 00:00:01 |
--------------------------------------------------------------------------- Predicate Information (identified by operation id):
--------------------------------------------------- 2 - filter(ROWNUM<20) SQL>
eg:
SQL> select * from (select addr,ts#,file#,dbarfil,dbablk,tch from x$bh order by tch desc) where rownum<20
2 ;
Execution Plan
----------------------------------------------------------
Plan hash value: 2453498899
--------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 19 | 1349 | 1 (100)| 00:00:01 |
|* 1 | COUNT STOPKEY | | | | | |
| 2 | VIEW | | 100 | 7100 | 1 (100)| 00:00:01 |
|* 3 | SORT ORDER BY STOPKEY| | 100 | 7100 | 1 (100)| 00:00:01 |
| 4 | FIXED TABLE FULL | X$BH | 100 | 7100 | 0 (0)| 00:00:01 |
--------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
1 - filter(ROWNUM<20)
3 - filter(ROWNUM<20)
SQL> set autotrace off
SQL> r
1 select * from (select addr,ts#,file#,dbarfil,dbablk,tch from x$bh order by tch desc) where rownum<20
2*
ADDR TS# FILE# DBARFIL DBABLK TCH
---------------- ---------- ---------- ---------- ---------- ----------
00007F64CBFCD840 0 1 1 2017 162
00007F64CBFCD840 0 1 1 2016 161
00007F64CBFCD840 0 1 1 3025 54
00007F64CBFCD840 0 1 1 3073 50
00007F64CBFCD840 0 1 1 385 50
00007F64CBFCD840 0 1 1 169 50
00007F64CBFCD840 0 1 1 345 49
00007F64CBFCD840 0 1 1 3057 49
00007F64CBFCD840 0 1 1 337 49
00007F64CBFCD840 0 1 1 481 49
00007F64CBFCD840 0 1 1 46461 48
ADDR TS# FILE# DBARFIL DBABLK TCH
---------------- ---------- ---------- ---------- ---------- ----------
00007F64CBFCD840 0 1 1 2945 46
00007F64CBFCD840 0 1 1 489 43
00007F64CBFCD840 0 1 1 170 42
00007F64CBFCD840 0 1 1 577 42
00007F64CBFCD840 0 1 1 1625 41
00007F64CBFCD840 0 1 1 490 41
00007F64CBFCD840 0 1 1 2946 41
00007F64CBFCD840 0 1 1 386 41
19 rows selected.
SQL>
"the run-time engine simply scanned the table, keeping a cache of the top
10 values. It didn’t really sort 1,000,000 rows, it merely checked each row to see if it was larger
than the smallest item in the current cache and should replace it. At the end of the scan, it only
had 10 rows to sort."
这就是这两个sql语句执行计划的区别。
sql执行计划解析案例(二)的更多相关文章
- Oracle sql执行计划解析
Oracle sql执行计划解析 https://blog.csdn.net/xybelieve1990/article/details/50562963 Oracle优化器 Oracle的优化器共有 ...
- 两个左连接SQL执行计划解析(Oracle和PGSQL对比):
上一篇解析链接如下: https://www.cnblogs.com/wcwen1990/p/9325968.html 1.SQL示例1: SQL> select * from ( select ...
- 一个RDBMS左连接SQL执行计划解析
1.测试数据如下: SQL> select * from t1; a | b | c ---+----+--- 1 | 10 | 1 2 | 20 | 2 3 | 30 | 3 4 ...
- spark sql 执行计划生成案例
前言 一个SQL从词法解析.语法解析.逻辑执行计划.物理执行计划最终转换为可以执行的RDD,中间经历了很多的步骤和流程.其中词法分析和语法分析均有ANTLR4完成,可以进一步学习ANTLR4的相关知识 ...
- [转载]循规蹈矩:快速读懂SQL执行计划的套路与工具
作者介绍 梁敬彬,福富研究院副理事长.公司唯一四星级内训师,国内一线知名数据库专家,在数据库优化和培训领域有着丰富的经验.多次应邀担任国内外数据库大会的演讲嘉宾,在业界有着广泛的影响力.著有多本畅销书 ...
- DB查询分析器7.01新增的周、月SQL执行计划功能
DB查询分析器7.01新增的周.月SQL执行计划功能 马根峰 (广东联合电子服务股份有限公司, 广州 510300) 1 引言 中国本土 ...
- SQL执行计划解读
声明 5.6中desc看不到show warnings,也看不到filtered列 5.7的desc等于5.6的desc extended,这样可以看show warnings,5.6中filtere ...
- sql执行计划(书中个人总结)
一.什么是sql执行计划 执行一条sql,以最快最低消耗获取出所需数据的一个执行过程. 二.如何获取执行计划 执行计划获取的六种方式: 1.explain plan for 优点和缺点: 2.set ...
- OCM_第十五天课程:Section6 —》数据库性能调优 _SQL 访问建议 /SQL 性能分析器/配置基线模板/SQL 执行计划管理/实例限制
注:本文为原著(其内容来自 腾科教育培训课堂).阅读本文注意事项如下: 1:所有文章的转载请标注本文出处. 2:本文非本人不得用于商业用途.违者将承当相应法律责任. 3:该系列文章目录列表: 一:&l ...
随机推荐
- 又一家自适应学习平台上线,大讲台主攻IT在线教育
自适应学习技术自2015年以内,越来越受到在线教育公司的关注和重视,极客学院创始人靳岩7月初在接受媒体采访时曾提到,百万用户只是极客学院的第一步,下一步的目标是自适应学习.靳岩认为,自适应学习代表未来 ...
- 自设chrome默认滚动条样式
今天无聊,想着chrome这种全面使用html的浏览器,可不可以让我自行改变它的默认CSS呢,结果去查查,有,很好 win7/8目录为 C:\Users\[你的用户名]\AppData\Local\G ...
- Razor引擎总结
1.显示格式化小数:@(string.Format("{0:0.00}",ViewData["TradeAmount"].ToNullString()))
- C# RichTextBox 获取当前显示部分的文字
int start = richTextBox1.GetCharIndexFromPosition(new Point(0, 0)); int end = richTextBox1.GetCharIn ...
- python中的__init__ 、__new__、__call__等内置函数的剖析
1.__new__(cls, *args, **kwargs) 创建对象时调用,返回当前对象的一个实例;注意:这里的第一个参数是cls即class本身2.__init__(self, *args, ...
- Sectong日志分析
http://tech.uc.cn/?p=2866#comments http://blog.sectong.com/blog/hw_bigdata.html
- 使用AspNetPager与GridView完成分页
使用AspNetPager与GridView完成分页 由于GridView的分页功能实在是太弱了,所以需要使用强大的AspNetPager来作为分页控件.最简单的办法就是GridView控件下面接 ...
- USB Type-C“三剑客”: 连接器、控制器和电缆
USB Type-C™是最新的有关电缆布线的USB连接器标准.您会看到,从笔记本电脑.智能手机.闪存到视频系统,这些设备上有一个小型可逆的Type-C连接器.由于Type-C电缆既可以给主机和设备提供 ...
- webkit中DOM 事件有多少
webkit中DOM 事件有多少 目前客户端javascript中大量的工作就是处理浏览器,用户触发的各种事件,下面是webkit中这些事件的集合,有一些时常见的,标准规定的,而另一些则是webkit ...
- Android用户界面 UI组件--AdapterView及其子类(一) ListView及各种Adapter详解
ListView就是列表组件,一般通过继承ListActivity使用系统提供的ListView. 所有的AdapterView组件都需要有一个对应的Adapter作为适配器来显示列表中元素的布局方式 ...