10g中注意谓词过滤的位置
在10g中当主查询的谓词信息,被错误的放入子查询中,会导致子查询无法展开 explain plan for UPDATE DWF.F_PTY_INDIV O
SET END_DT = TO_DATE('2012-12-31', 'YYYY-MM-DD')
WHERE EXISTS (SELECT 1
FROM DWF.F_PTY_INDIV F
WHERE O.PTY_ID = PTY_ID
AND O.CORP_ORG = CORP_ORG
AND O.SOURCE_CODE = 'CMS'
AND SOURCE_CODE = 'CMS'
AND F.DW_DATA_DT = TO_DATE('2012-12-31', 'YYYY-MM-DD'))
AND O.DW_DATA_DT <> TO_DATE('2012-12-31', 'YYYY-MM-DD')
AND O.END_DT = TO_DATE('29991231', 'YYYY-MM-DD'); select * from table(dbms_xplan.display());
Plan hash value: 4112899302 -----------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-----------------------------------------------------------------------------------------------
| 0 | UPDATE STATEMENT | | 1 | 44 | 373K (1)| 01:14:48 |
| 1 | UPDATE | F_PTY_INDIV | | | | |
|* 2 | FILTER | | | | | |
|* 3 | TABLE ACCESS FULL | F_PTY_INDIV | 1589 | 69916 | 1149 (2)| 00:00:14 |
|* 4 | FILTER | | | | | |
|* 5 | TABLE ACCESS BY INDEX ROWID| F_PTY_INDIV | 1 | 36 | 469 (0)| 00:00:06 |
|* 6 | INDEX SKIP SCAN | SYS_C0022051 | 1 | | 468 (0)| 00:00:06 |
----------------------------------------------------------------------------------------------- Predicate Information (identified by operation id):
--------------------------------------------------- 2 - filter( EXISTS (SELECT 0 FROM "DWF"."F_PTY_INDIV" "F" WHERE :B1='CMS' AND
"F"."DW_DATA_DT"=TO_DATE(' 2012-12-31 00:00:00', 'syyyy-mm-dd hh24:mi:ss') AND
"PTY_ID"=:B2 AND "CORP_ORG"=:B3 AND "SOURCE_CODE"='CMS'))
3 - filter("O"."END_DT"=TO_DATE('29991231','YYYY-MM-DD') AND
"O"."DW_DATA_DT"<>TO_DATE(' 2012-12-31 00:00:00', 'syyyy-mm-dd hh24:mi:ss'))
4 - filter(:B1='CMS')
5 - filter("F"."DW_DATA_DT"=TO_DATE(' 2012-12-31 00:00:00', 'syyyy-mm-dd
hh24:mi:ss'))
6 - access("PTY_ID"=:B1 AND "SOURCE_CODE"='CMS' AND "CORP_ORG"=:B2)
filter("PTY_ID"=:B1 AND "CORP_ORG"=:B2 AND "SOURCE_CODE"='CMS')
----------------------------------------------------------------------------------------------------------
explain plan for UPDATE DWF.F_PTY_INDIV O
SET END_DT = TO_DATE('2012-12-31', 'YYYY-MM-DD')
WHERE O.SOURCE_CODE = 'CMS' and
EXISTS (SELECT 1
FROM DWF.F_PTY_INDIV F
WHERE O.PTY_ID = PTY_ID
AND O.CORP_ORG = CORP_ORG
/* AND O.SOURCE_CODE = 'CMS'*/
AND SOURCE_CODE = 'CMS'
AND F.DW_DATA_DT = TO_DATE('2012-12-31', 'YYYY-MM-DD'))
AND O.DW_DATA_DT <> TO_DATE('2012-12-31', 'YYYY-MM-DD')
AND O.END_DT = TO_DATE('29991231', 'YYYY-MM-DD') select * from table(dbms_xplan.display());
Plan hash value: 3463369635 -------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-------------------------------------------------------------------------------------
| 0 | UPDATE STATEMENT | | 1 | 80 | 2286 (2)| 00:00:28 |
| 1 | UPDATE | F_PTY_INDIV | | | | |
|* 2 | HASH JOIN RIGHT SEMI| | 1 | 80 | 2286 (2)| 00:00:28 |
|* 3 | TABLE ACCESS FULL | F_PTY_INDIV | 286 | 10296 | 1141 (2)| 00:00:14 |
|* 4 | TABLE ACCESS FULL | F_PTY_INDIV | 740 | 32560 | 1145 (2)| 00:00:14 |
------------------------------------------------------------------------------------- Predicate Information (identified by operation id):
--------------------------------------------------- 2 - access("O"."PTY_ID"="PTY_ID" AND "O"."CORP_ORG"="CORP_ORG")
3 - filter("F"."DW_DATA_DT"=TO_DATE(' 2012-12-31 00:00:00', 'syyyy-mm-dd
hh24:mi:ss') AND "SOURCE_CODE"='CMS')
4 - filter("O"."SOURCE_CODE"='CMS' AND
"O"."END_DT"=TO_DATE('29991231','YYYY-MM-DD') AND
"O"."DW_DATA_DT"<>TO_DATE(' 2012-12-31 00:00:00', 'syyyy-mm-dd hh24:mi:ss'))
10g中注意谓词过滤的位置的更多相关文章
- iOS中的谓词(NSPredicate)使用
http://www.cocoachina.com/ios/20160111/14926.html 首先,我们需要知道何谓谓词,让我们看看官方的解释: The NSPredicate class is ...
- PatentTips - 在物联网中进行数据过滤的方法和装置
背景技术 [0001] 本发明涉及物联网,特别涉及在物联网进行数据过滤的方法和装置. [0002] 物联网是新一代信息技术的重要组成部分,特指物物相连的网络.具体地,物联网是指通过各种信息传感设备,如 ...
- 【大数据】SparkSql 连接查询中的谓词下推处理 (二)
本文首发于 vivo互联网技术 微信公众号 https://mp.weixin.qq.com/s/II48YxGfoursKVvdAXYbVg作者:李勇 目录:1.左表 join 后条件下推2.左表j ...
- 【大数据】SparkSql 连接查询中的谓词下推处理 (一)
本文首发于 vivo互联网技术 微信公众号 https://mp.weixin.qq.com/s/YPN85WBNcnhk8xKjTPTa2g 作者:李勇 目录: 1.SparkSql 2.连接查询和 ...
- web前端开发中常用的尺寸和位置
我们在日常web前端开发过程中,会经常用到各种尺寸和位置.通常是js做动画的时候.轮播图,滚屏动画,粒子,碰撞检测,拖拽,滚动加载等等.这里我将常用的尺寸和位置的获取进行总结,不包括canvas,SV ...
- C语言中函数声明实现的位置
在学习C语言的时候我遇到了这么个事情,因为之前先学习的C#,在C#编译器中,函数的声明位置不会影响编译的结果,但是在C语言中却发生了错误 先看一段代码: #include <stdio.h> ...
- 字符串s中从第i个位置起取长度为len的子串,函数返回子串链表
/*已知字符串采用带结点的链式存储结构(详见linksrting.h文件),请编写函数linkstring substring(linkstring s,int i,int len),在字符串s中从第 ...
- 获取一个字符串Hello world中world首次出现的位置
获取一个字符串Hello world中world首次出现的位置 var str=“Hello world!” document.write(str.indexOf("world") ...
- 10g中HASH GROUP BY引起的临时表空间不足
原本在9i上可以顺利完成的CTAS脚本,迁移到10g后运行总是报“ORA-1652: unable to extend temp segment by 128 in tablespace TS_HQY ...
随机推荐
- 让PV10000+的秘诀
原文地址:http://www.phonegap100.com/article-410-1.html 让PV10000+的秘诀 2015-5-4 21:49| 发布者: admin| 查看: 122| ...
- aptana 插件离线下载方式
aptana 插件离线下载方式 Aptana 网站改版后取消了eclipse 插件的zip直接下载地址,其实aptana 官网仍还提供aptana 插件的zip包下载不过比较隐蔽而已.很多人在线安装时 ...
- C#调用PowerShell脚本
今天通过一个小例子,学习了C#如何调用PowerShell脚本文件的Function以及传参. private bool CallPowershell(string outputFile) { str ...
- (step4.3.1) hdu 1010(Tempter of the Bone——DFS)
题目大意:输入三个整数N,M,T.在接下来的N行.M列会有一系列的字符.其中S表示起点,D表示终点. .表示路 . X表示墙...问狗能有在T秒时到达D.如果能输出YES, 否则输出NO 解题思路:D ...
- android SlidingTabLayout实现ViewPager页卡滑动效果
先来张效果图(能够滑动切换页卡) watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcGVuZ2t2/font/5a6L5L2T/fontsize/400/fi ...
- iptables简述
一.linux防火墙基础防火墙分为硬件防火墙和软件防火墙. 1.概述linux 防火墙体系主要工作在网络层,针对TCP/IP数据包实施过滤和限制,属于典型的包过滤防火墙. 包过滤机制:ne ...
- 【iOS开发之OC和JS互调】
1.OC中调用JS代码 公司的移动端需要加载一个现有的网页,并且要在原网页要做一些小的调整,如将网页的标题改一下加载到手机的app上,此时就可以在app的oc代码中加入JS代码来实现.如下例子,我要加 ...
- css圆角
在CSS3中圆角属性,有四个.三个.两个和一个值. 四个值: 第一个值为左上角,第二个值为右上角,第三个值为右下角,第四个值为左下角.
- C#time 闹钟
private void timer2_Tick(object sender, EventArgs e) { lbltime.Text = DateTime.Now.ToString(); & ...
- protected访问修饰符
子类可以调用, 但实例化的对像不可调用 new object;