WITH AS 优化逻辑读
- SQL> select *
- from fxqd_list_20131115_new
- where (acct_no, oper_no, seqno, trans_amt) not in
- (select acct_no, oper_no, seqno, trans_amt
- from fxqd_list
- where reg_date = to_date('20131115', 'yyyymmdd'))
- and list_type = '1'; 2 3 4 5 6 7
- 103 rows selected.
- Execution Plan
- ----------------------------------------------------------
- Plan hash value: 196590019
- -------------------------------------------------------------------------------------------------------
- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
- -------------------------------------------------------------------------------------------------------
- | 0 | SELECT STATEMENT | | 4145 | 10M| 13079 (1)| 00:02:37 |
- |* 1 | FILTER | | | | | |
- |* 2 | TABLE ACCESS FULL | FXQD_LIST_20131115_NEW | 4145 | 10M| 180 (2)| 00:00:03 |
- |* 3 | TABLE ACCESS BY INDEX ROWID| FXQD_LIST | 2036 | 157K| 4 (0)| 00:00:01 |
- |* 4 | INDEX RANGE SCAN | FXQD_LIST_IDX_1 | 2500 | | 3 (0)| 00:00:01 |
- -------------------------------------------------------------------------------------------------------
- Predicate Information (identified by operation id):
- ---------------------------------------------------
- 1 - filter( NOT EXISTS (SELECT /*+ */ 0 FROM "FXQD_LIST" "FXQD_LIST" WHERE
- "REG_DATE"=TO_DATE(' 2013-11-15 00:00:00', 'syyyy-mm-dd hh24:mi:ss') AND LNNVL("ACCT_NO"<>:B1)
- AND LNNVL("OPER_NO"<>:B2) AND LNNVL("SEQNO"<>:B3) AND LNNVL("TRANS_AMT"<>:B4)))
- 2 - filter("LIST_TYPE"='1')
- 3 - filter(LNNVL("ACCT_NO"<>:B1) AND LNNVL("OPER_NO"<>:B2) AND LNNVL("SEQNO"<>:B3) AND
- LNNVL("TRANS_AMT"<>:B4))
- 4 - access("REG_DATE"=TO_DATE(' 2013-11-15 00:00:00', 'syyyy-mm-dd hh24:mi:ss'))
- Note
- -----
- - dynamic sampling used for this statement
- Statistics
- ----------------------------------------------------------
- 3505 recursive calls
- 2 db block gets
- 1564672 consistent gets
- 0 physical reads
- 0 redo size
- 43694 bytes sent via SQL*Net to client
- 558 bytes received via SQL*Net from client
- 8 SQL*Net roundtrips to/from client
- 16 sorts (memory)
- 0 sorts (disk)
- 103 rows processed
- SQL> with D as (select /*+materialize*/ acct_no, oper_no, seqno, trans_amt
- from fxqd_list
- where reg_date = to_date('20131115', 'yyyymmdd'))
- select * from fxqd_list_20131115_new where (acct_no, oper_no, seqno, trans_amt) not in
- (select acct_no, oper_no, seqno, trans_amt from D)
- and list_type = '1'; 2 3 4 5 6
- 103 rows selected.
- Execution Plan
- ----------------------------------------------------------
- Plan hash value: 1295716977
- -------------------------------------------------------------------------------------------------------------
- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
- -------------------------------------------------------------------------------------------------------------
- | 0 | SELECT STATEMENT | | 4145 | 10M| 26570 (1)| 00:05:19 |
- | 1 | TEMP TABLE TRANSFORMATION | | | | | |
- | 2 | LOAD AS SELECT | FXQD_LIST_20131115_NEW | | | | |
- | 3 | TABLE ACCESS BY INDEX ROWID| FXQD_LIST | 2500 | 192K| 389 (1)| 00:00:05 |
- |* 4 | INDEX RANGE SCAN | FXQD_LIST_IDX_1 | 2500 | | 10 (0)| 00:00:01 |
- |* 5 | FILTER | | | | | |
- |* 6 | TABLE ACCESS FULL | FXQD_LIST_20131115_NEW | 4145 | 10M| 180 (2)| 00:00:03 |
- |* 7 | VIEW | | 2500 | 170K| 8 (0)| 00:00:01 |
- | 8 | TABLE ACCESS FULL | SYS_TEMP_0FD9D66DD_A4F53A1D | 2500 | 170K| 8 (0)| 00:00:01 |
- -------------------------------------------------------------------------------------------------------------
- Predicate Information (identified by operation id):
- ---------------------------------------------------
- 4 - access("REG_DATE"=TO_DATE(' 2013-11-15 00:00:00', 'syyyy-mm-dd hh24:mi:ss'))
- 5 - filter( NOT EXISTS (SELECT /*+ */ 0 FROM (SELECT /*+ CACHE_TEMP_TABLE ("T1") */ "C0"
- "ACCT_NO","C1" "OPER_NO","C2" "SEQNO","C3" "TRANS_AMT" FROM "SYS"."SYS_TEMP_0FD9D66DD_A4F53A1D"
- "T1") "D" WHERE LNNVL("ACCT_NO"<>:B1) AND LNNVL("OPER_NO"<>:B2) AND LNNVL("SEQNO"<>:B3) AND
- LNNVL("TRANS_AMT"<>:B4)))
- 6 - filter("LIST_TYPE"='1')
- 7 - filter(LNNVL("ACCT_NO"<>:B1) AND LNNVL("OPER_NO"<>:B2) AND LNNVL("SEQNO"<>:B3) AND
- LNNVL("TRANS_AMT"<>:B4))
- Note
- -----
- - dynamic sampling used for this statement
- Statistics
- ----------------------------------------------------------
- 2365 recursive calls
- 64 db block gets
- 124525 consistent gets
- 55 physical reads
- 1516 redo size
- 43694 bytes sent via SQL*Net to client
- 558 bytes received via SQL*Net from client
- 8 SQL*Net roundtrips to/from client
- 46 sorts (memory)
- 0 sorts (disk)
- 103 rows processed
WITH AS 优化逻辑读的更多相关文章
- 初谈SQL Server逻辑读、物理读、预读
前言 本文涉及的内容均不是原创,是记录自己在学习IO.执行计划的过程中学习其他大牛的博客和心得并记录下来,之所以想写下来是为了记录自己在追溯的过程遇到的几个问题,并把这些问题弄清楚. 本章最后已贴出原 ...
- Oracle逻辑读详解
1.物理读(physical read) 当数据块第一次读取到,就会缓存到buffer cache 中,而第二次读取和修改该数据块时就在内存buffer cache 了 以下是例子: 1.1 第一次 ...
- 初谈SQL Server逻辑读、物理读、预读【转】
前言 本文涉及的内容均不是原创,是记录自己在学习IO.执行计划的过程中学习其他大牛的博客和心得并记录下来,之所以想写下来是为了记录自己在追溯的过程遇到的几个问题,并把这些问题弄清楚. 本章最后已贴出原 ...
- 逻辑读为何消耗CPU?
在数据库系统中,经常会看到这个说法:“逻辑读很消耗CPU”,然后开始把这句话当作一个定理来使用.但是为什么“同样是读,为什么逻辑读会使用那么多CPU?” 查了一些资料,配合自己的理解,有下面几点体会: ...
- sqlserver性能调优中的逻辑读,物理读,预读是什么意思
表 'T_EPZ_INOUT_ENTRY_DETAIL'.扫描计数 1,逻辑读 4825 次,物理读 6 次,预读 19672 次.SQL SERVER 数据库引擎当遇到一个查询语句时,SQL SER ...
- ORACLE 物理读 逻辑读 一致性读 当前模式读总结浅析
在ORACLE数据库中有物理读(Physical Reads).逻辑读(Logical Reads).一致性读(Consistant Get).当前模式读(DB Block Gets)等诸多概念,如果 ...
- SQL Server逻辑读、预读和物理读
SQL Server数据存储的形式 预读:用估计信息,去硬盘读取数据到缓存.预读100次,也就是估计将要从硬盘中读取了100页数据到缓存. 物理读:查询计划生成好以后,如果缓存缺少所需要的数据,让缓存 ...
- SQL Server 中的逻辑读与物理读
首先要理解逻辑读和物理读: 预读:用估计信息,去硬盘读取数据到缓存.预读100次,也就是估计将要从硬盘中读取了100页数据到缓存. 物理读:查询计划生成好以后,如果缓存缺少所需要的数据,让缓存再次去读 ...
- SQL逻辑读变成零
使用缓存HINT 让逻辑读变成0. create table t as select * from dba_objects; insert into t select * from t; commit ...
随机推荐
- iOS UIKit:CollectionView之设计 (1)
collection view(UICollectionView对象)使用灵活和可扩展的布局来描述有序的数据项,其一般情况下以网格的形式来展示内容,但并非一定如此. 1 基础 为了将数据展示在屏幕中, ...
- Windows Server 2008中关闭事件跟踪程序的方法
Windows Server 2008跟Windows Server 2003一样,在关机的时候会弹出一个“关闭事件跟踪程序”窗口,当然微软这么做是处于安全的考虑啦,但是如果我们只是个人用用的话,那就 ...
- jwplayer 源代码重新编译
由于原来下载的jwplaery播放器中带有官方的播放统计信息,需要从官方加载统计js脚本,影响播放器加载速度,因此从官方github站点上下载播放器进行重新编译操作,现记录过程如下. 下载最新的jwp ...
- ASP.Net免费发送短信-阿里大鱼短信接口
有点短信余额 不用白不用 3月1号就过期了 情人节做了个免费发短信的 http://love.issuc.com/ 固定短信模板 [活动验证]您正在参加XXX的OOO活动,请确认系本人申请.需要的可以 ...
- 类似与三元表达式的 json 读取值
需要先在项目中添加 json的dll json 序列里面的key在item.feeType里面必须存在 否则会报 未将对象引用到实例 myDr["feeType"] = Newto ...
- Mvc网站开发知识
网站开发基本本步骤 mvc是一个设计模式 网站开发前台页面技术 页面设计:Html css+Div 页面特效:JavaScript,jQuery oop编程核心公共技能 c#基础语法与程序逻辑 面向对 ...
- 关于基于.net的WEB程序开发所需要的一些技术归纳
前提: 最近公司里有一个同事,年龄比我大几岁,但是由于是转行来做开发的,许多的关于.net开发技术不是很入行,所以总是会问我一些东西,基于自己以前的一些 经验,总是会愿意给他讲一些总结性的东西,希望他 ...
- 在CentOS6.0上安装Oracle 11gR2 (11.2.0.1)以及基本的配置(一)
首先安装CentOS6.0 就不用说了.安装即可.唯一需要注意的就是后面Oracle 11G Installation guide中的Checking the Software Requireme ...
- ACM YTU 《挑战编程》第一章 入门 Problem E: Graphical Editor
Description Graphical editors such as Photoshop allow us to alter bit-mapped images in the same way ...
- 获取动态SQL查询语句返回值(sp_executesql)
在写存储过程时经常会遇到需要拼接SQL语句的情况,一般情况下仅仅是为了执行拼接后的语句使用exec(@sql)即可. 而今天的一个存储过程却需要获取动态SQL的查询结果. 需求描述:在某表中根据Id值 ...