开发谓词放错引起的尴尬

原创 2013年12月05日 16:45:09
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')
----------------------------------------------------------------------------------------------------------
开发居然把AND O.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'))


iOS开发,谓词(NSPredicate)的用法:(一)基本用法

在iOS开发中,系统提供了NSPredicate这个类给我们进行一些匹配、筛选操作,非常方便。在没有用这个类时,我们要获取两个数组中某些特定的元素时,需要写代码一一对比,但是使用了这个类,只需要三四行...
  • quanzheng92
  • quanzheng92
  • 2015年06月17日 11:32
  • 2403

IOS的谓词语法小解

前言:        本篇博客,不在用太多的语言介绍,因为,介绍已经添加到代码中。现在。我们就直接上代码。如果,有不对的地方还请海涵。 第一、主代码: // //  ViewCon...
  • zhoushuangjian511
  • zhoushuangjian511
  • 2016年07月21日 17:29
  • 600

C++函数对象-谓词

函数对象(也叫functor),听起来或许有点陌生,但他们是c++实体,即使你没有用过,也一定见过,只是你没有意识到而已。从概念上讲,函数对象时用作函数的对象;但是从实现上来说,函数对象时实现了 op...
  • q__y__L
  • q__y__L
  • 2016年04月20日 23:34
  • 1548

iOS开发基础之谓词(NSPredicate)的使用

本文为投稿文章,作者:sunny_zl 首先,我们需要知道何谓谓词,让我们看看官方的解释:The NSPredicate class is used to define logical conditi...
  • hbblzjy
  • hbblzjy
  • 2017年04月24日 11:43
  • 294

谓词,lambda表达式和bind

谓词是一个可调用的表达式,用于返回一个可以做条件的值,分为一元谓词(只接受一个参数)和二元谓词(接收两个参数),例如 bool isShorter(const string& s1, const st...
  • F336699
  • F336699
  • 2016年07月19日 15:51
  • 181

谓词基本语法和用法

=、==:判断两个表达式是否相等,在谓词中=和==是相同的意思都是判断,而没有赋值这一说NSNumber *testNumber = @123; NSPredicate *predicate = ...
  • requestnslog
  • requestnslog
  • 2016年12月01日 17:19
  • 413

Hadoop 过滤,映射,谓词下推基本概念

本文中涉及的源码地址:https://github.com/Hanmourang/hiped2/blob/master/src/main/java/hip/ch6/joins/FilterProjec...
  • Mike_H
  • Mike_H
  • 2015年12月02日 14:22
  • 2629

一阶谓词逻辑系统的建立和可计算问题的简述

综述 在逻辑学的发展历程中,模糊的不成体系的原始推理规则和后来建立起来的命题逻辑体系占据了极其重大的分量。但是伴随着体系的建立,体系本身的不完善和矛盾之处也在逐渐成为了逻辑学家和数学家的“肉中刺”,成...
  • u012143360
  • u012143360
  • 2016年01月17日 00:03
  • 901

带有in谓词的子查询

--数据库基本表的创建,插入,删除,更新操作 --建立一个"学生"表 --学生的学号:Sno,类型是char(9)-->因为学生的学号是9位的定长的字符串; --学生的姓名:Sname,类型是varc...
  • ArithmeticException
  • ArithmeticException
  • 2016年11月20日 16:40
  • 629

OC学习篇之---谓词(NSPredicate)

在前一篇文章中我们介绍了OC中一个重要技术通知:http://blog.csdn.net/jiangwei0910410003/article/details/41923401,今天我们在来看一下OC...
  • jiangwei0910410003
  • jiangwei0910410003
  • 2014年12月14日 10:39
  • 29461
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:开发谓词放错引起的尴尬
举报原因:
原因补充:

(最多只允许输入30个字)