[20180625]10g下查询条件rownum = 0.txt

简介: [20180625]10g下查询条件rownum = 0.txt SCOTT@test> @ &r/ver1 PORT_STRING                    VERSION        BANNER --------------------...

[20180625]10g下查询条件rownum = 0.txt

SCOTT@test> @ &r/ver1
PORT_STRING                    VERSION        BANNER
------------------------------ -------------- ----------------------------------------------------------------
x86_64/Linux 2.4.xx            10.2.0.4.0     Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi

SCOTT@test> alter session set statistics_level=all;
Session altered.

SCOTT@test> select * from emp where rownum = 0;
no rows selected

SCOTT@test> @ &r/dpc '' ''
PLAN_TABLE_OUTPUT
-------------------------------------
SQL_ID  9cqutphfzqcdr, child number 1
-------------------------------------
select * from emp where rownum = 0
Plan hash value: 2063368778
----------------------------------------------------------------------------------------------------------------------
| Id  | Operation           | Name | Starts | E-Rows |E-Bytes| Cost (%CPU)| E-Time   | A-Rows |   A-Time   | Buffers |
----------------------------------------------------------------------------------------------------------------------
|   1 |  COUNT              |      |      1 |        |       |            |          |      0 |00:00:00.01 |       7 |
|*  2 |   FILTER            |      |      1 |        |       |            |          |      0 |00:00:00.01 |       7 |
|   3 |    TABLE ACCESS FULL| EMP  |      1 |     14 |   518 |     3   (0)| 00:00:01 |     14 |00:00:00.01 |       7 |
----------------------------------------------------------------------------------------------------------------------
Query Block Name / Object Alias (identified by operation id):
-------------------------------------------------------------
   1 - SEL13SEL1 / EMP@SEL$1
Predicate Information (identified by operation id):
---------------------------------------------------
   2 - filter(ROWNUM=0)
25 rows selected.

--//可以发现实际上真实做的是全表扫描,逻辑读7,采用的是filter.
--//可以发现这个是一个bug,结果大量的逻辑读.可以在11g重复测试:

SCOTT@book> @ &r/ver1
PORT_STRING                    VERSION        BANNER
------------------------------ -------------- --------------------------------------------------------------------------------
x86_64/Linux 2.4.xx            11.2.0.4.0     Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

SCOTT@book> alter session set statistics_level=all;
Session altered.

SCOTT@book> select * from emp where rownum = 0;
no rows selected

SCOTT@book> @ &r/dpc '' ''
PLAN_TABLE_OUTPUT
-------------------------------------
SQL_ID  9cqutphfzqcdr, child number 0
-------------------------------------
select * from emp where rownum = 0
Plan hash value: 1973284518
-----------------------------------------------------------------------------------------------------------
| Id  | Operation          | Name | Starts | E-Rows |E-Bytes| Cost (%CPU)| E-Time   | A-Rows |   A-Time   |
-----------------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT   |      |      1 |        |       |     2 (100)|          |      0 |00:00:00.01 |
|*  1 |  COUNT STOPKEY     |      |      1 |        |       |            |          |      0 |00:00:00.01 |
|   2 |   TABLE ACCESS FULL| EMP  |      1 |      1 |    38 |     2   (0)| 00:00:01 |      0 |00:00:00.01 |
-----------------------------------------------------------------------------------------------------------
Query Block Name / Object Alias (identified by operation id):
-------------------------------------------------------------
   1 - SEL12SEL1 / EMP@SEL$1
Predicate Information (identified by operation id):
---------------------------------------------------
   1 - filter(ROWNUM=0)
25 rows selected.

--//这里逻辑读是0,A-rows=0(id=2),也说明没有做全表扫描.

相关文章
模拟实现库函数,strtsr,memmove.
<1>主页:C语言的前男友 <2>知识讲解:模拟实现 库函数 strstr,memmove <3>创作者:C语言的前男友 <4>开发环境:Visual Studio 2022 <5>前言:学习了strstr,memnove等库里面的内存相关的函数,功能非常的强大。今天我们来模拟实现一下。
可观测监控方案大全-SLS全栈监控
为了便于用户快速接入和监控业务系统,SLS提供了全栈监控的APP,将各类监控数据汇总到一个实例中进行统一的管理和监控。全栈监控基于SLS的监控数据采集、存储、分析、可视化、告警、AIOps等能力构建。
1925 1
Java实用教程第五版课后习题
1.Person.java。 2.两个字节码,分别是Person.class和Xiti.class。 3.得到“找不到 main 方法” 得到&quot;无法加载主类 xiti&quot; 得到“无法加载主类 xiti.class” 得到“您好,很高兴认识您 nice to meet you”
353 0
Java实用教程第五版课后习题
刨析 SpringBoot 自动装配原理,其实很简单
刨析 SpringBoot 自动装配原理,其实很简单
J3
663 1
刨析 SpringBoot 自动装配原理,其实很简单
Java高并发秒杀系统【观后总结】(三)
在慕课网上发现了一个JavaWeb项目,内容讲的是高并发秒杀,觉得挺有意思的,就进去学习了一番。
268 0
Java高并发秒杀系统【观后总结】(三)
短视频APP开发需要哪些基础功能
传统的图文转播方式已经无法满足用户的心理需求,短视频以短、快等优势将图文以短视频的方式展示,短视频也大大的提高了用户的体验,有必要说下短视频开发一般具备哪些功能
316 0
短视频APP开发需要哪些基础功能
Java抽象类与接口的区别
看到题目的时候,你掌握这个知识点了吗? 图片来源与网络 常见面试问题如下: 接口和抽象类的区别,什么时候使用? 抽象类和接口的相同点和不同点? 总之就是经常问到的问题了。
Swift入门基础知识
var //代表变量,变量的值可以改变 let//代表常量类型不可改变 //声明常量heh类型Swift会自动根据你的值来自动判断该变量的类型也可以指定类型(个人感觉还是指定类型的比较好,可能会减少系统的开销),值为10 //自动判断变量的类型  let heh = 10//假如在下面的代码...
1017 0
[20161230]查看父游标中sql语句.txt
[20161230]查看父游标中sql语句.txt --上午巡检完,无聊,测试使用oradebug下查看sql语句在父游标中的内容.sql语句在执行第一次硬解析时生成父子游标,其中父游标chunk --中保存sql语句,测试通过oradebug下如何查看: 1.
818 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问