zoukankan      html  css  js  c++  java
  • 经典的标量子查询

    explain plan for ( select 'C10927' as YXJGDM, --银行机构代码
               '20110213000003' as JRXKZH, --金融许可证号
               a.SIGN_ORG as NBJGH, --内部机构号
               case
                 when substr(b.product_name, 1, 3) = '如意宝' and
                      substr(a.cust_no, 1, 1) = '1' then
                  '219'
                 when substr(b.product_name, 1, 3) = '如意宝' and
                      substr(a.cust_no, 1, 1) <> '1' then
                  '218'
                 else
                  '40605'
               end as MXKMBH, --明细科目编号
               c.org_name as YXJGMC, --银行机构名称
               case
                 when substr(b.product_name, 1, 3) = '如意宝' and
                      substr(a.cust_no, 1, 1) = '1' then
                  '个人如意宝存款'
                 when substr(b.product_name, 1, 3) = '如意宝' and
                      substr(a.cust_no, 1, 1) <> '1' then
                  '单位如意宝存款'
                 else
                  '委托理财负债'
               end as MXKMMC, --明细科目名称
               a.acct_no as LCZH, --理财帐号
               a.cust_no as KHTYBH, --客户统一编号
               a.cust_name as KHXM, --客户姓名
               
    (case
                 when length(a.acct_no) = 16 then
                  (select MASTER_CARD_NO
                     from dwf.F_AGT_CADB_BOOK_H
                    where start_dt <= date '2014-09-30'
                      and end_dt > date '2014-09-30'
                      and agmt_id = a.acct_no)
                 else
                  a.acct_no
               end) as GLHQCKZH, --,
    
    
               b.product_name as LCCPMC, --理财产品名称
               b.product_no as HNBSM, --行内标识码
               trunc(a.FINANCE_AMT, 0) as FEZS, --份额总数
               trunc(a.FINANCE_AMT, 0) as DJFE, --冻结份额
               '否' as HLZTZBZ, --再投资标志
               PROF_AMT as BQSY, --本期收益
               PROF_AMT as LJSY, --累计收益
               a.FINANCE_AMT as MRCB, --买入成本
               to_char(b.START_DATE, 'yyyymmdd') as BQQSRQ, --本期起始日期
               to_char(b.maturity_dt, 'yyyymmdd') as BQDQRQ, --本期到期日期
              
     nvl((case
                     when length(a.acct_no) = 16 then
                      (select to_char(OPEN_DATE, 'yyyymmdd')
                         from dwf.F_AGT_CADB_BOOK_H
                        where start_dt <= date '2014-09-30'
                          and end_dt > date '2014-09-30'
                          and agmt_id = a.acct_no)
                     else
                      (select to_char(OPEN_DATE, 'yyyymmdd')
                         from dwf.F_AGT_SAVB_BASICINFO_H
                        where start_dt <= date '2014-09-30'
                          and end_dt > date '2014-09-30'
                          and agmt_id = a.acct_no)
                   end),
                   (select to_char(OPEN_DATE, 'yyyymmdd')
                      from dwf.F_AGT_CADB_BOOK_H
                     where start_dt <= date '2014-09-30'
                       and end_dt > date '2014-09-30'
                       and agmt_id = a.acct_no)
    				   ) as KHRQ, --开户日期
    
    				   
               to_char(FREEZE_START_DATE, 'yyyymmdd') as SCDHRQ, --上次动户日期就是气息日
               to_char(date '2014-09-30', 'yyyymmdd') as CJRQ
          from DWF.F_EVT_EXTR_FINANCE_BOOK a
          left join dwf.f_extc_finance_para b
            on a.product_no = b.product_no
          left join dwm.b_m_sys_branch c
            on a.SIGN_ORG = c.org_id
         where b.freeze_end_date between date '2014-01-01' and date '2014-09-30'
           and a.in_acct_date is not null --到帐日就是结息日就是到期日 只统计到期日
           and a.VALID_FLAG = '1'
           and a.deduct_flag = '1'
           and a.acct_flag in ('1', '2')
           and a.product_no in (select product_no
                                  from dwf.f_extc_finance_para
                                 where PRODUCT_TERM <> 0));
    							 
    select * from table(dbms_xplan.display());
    select * from table(dbms_xplan.display());
    
    Plan hash value: 3881317398
    
    ---------------------------------------------------------------------------------------------------------
    | Id  | Operation                     | Name                    | Rows  | Bytes | Cost (%CPU)| Time     |
    ---------------------------------------------------------------------------------------------------------
    |   0 | SELECT STATEMENT              |                         | 18473 |  2904K|  7488   (2)| 00:01:30 |
    |   1 |  TABLE ACCESS BY INDEX ROWID  | F_AGT_CADB_BOOK_H       |     1 |    54 | 72313   (1)| 00:14:28 |
    |*  2 |   INDEX SKIP SCAN             | F_AGT_CADB_BOOK_H_IDX1  |     2 |       | 72312   (1)| 00:14:28 |
    |   3 |  TABLE ACCESS BY INDEX ROWID  | F_AGT_CADB_BOOK_H       |     1 |    42 | 72313   (1)| 00:14:28 |
    |*  4 |   INDEX SKIP SCAN             | F_AGT_CADB_BOOK_H_IDX1  |     2 |       | 72312   (1)| 00:14:28 |
    |*  5 |   TABLE ACCESS BY INDEX ROWID | F_AGT_SAVB_BASICINFO_H  |     1 |    45 |     6   (0)| 00:00:01 |
    |*  6 |    INDEX SKIP SCAN            | SYS_C0026015            |     2 |       |     4   (0)| 00:00:01 |
    |   7 |    TABLE ACCESS BY INDEX ROWID| F_AGT_CADB_BOOK_H       |     1 |    42 | 72313   (1)| 00:14:28 |
    |*  8 |     INDEX SKIP SCAN           | F_AGT_CADB_BOOK_H_IDX1  |     2 |       | 72312   (1)| 00:14:28 |
    |*  9 |  HASH JOIN RIGHT SEMI         |                         | 18473 |  2904K|  7488   (2)| 00:01:30 |
    |* 10 |   TABLE ACCESS FULL           | F_EXTC_FINANCE_PARA     |   804 |  9648 |     9   (0)| 00:00:01 |
    |* 11 |   HASH JOIN RIGHT OUTER       |                         | 18473 |  2687K|  7478   (2)| 00:01:30 |
    |  12 |    TABLE ACCESS FULL          | B_M_SYS_BRANCH          |   154 |  3234 |     4   (0)| 00:00:01 |
    |* 13 |    HASH JOIN                  |                         | 18473 |  2309K|  7474   (2)| 00:01:30 |
    |* 14 |     TABLE ACCESS FULL         | F_EXTC_FINANCE_PARA     |   286 | 14872 |     9   (0)| 00:00:01 |
    |* 15 |     TABLE ACCESS FULL         | F_EVT_EXTR_FINANCE_BOOK | 52350 |  3885K|  7464   (2)| 00:01:30 |
    ---------------------------------------------------------------------------------------------------------
     
    Predicate Information (identified by operation id):
    ---------------------------------------------------
     
       2 - access("AGMT_ID"=:B1 AND "END_DT">TO_DATE(' 2014-09-30 00:00:00', 'syyyy-mm-dd 
                  hh24:mi:ss') AND "START_DT"<=TO_DATE(' 2014-09-30 00:00:00', 'syyyy-mm-dd hh24:mi:ss'))
           filter("AGMT_ID"=:B1 AND "END_DT">TO_DATE(' 2014-09-30 00:00:00', 'syyyy-mm-dd 
                  hh24:mi:ss') AND "START_DT"<=TO_DATE(' 2014-09-30 00:00:00', 'syyyy-mm-dd hh24:mi:ss'))
       4 - access("AGMT_ID"=:B1 AND "END_DT">TO_DATE(' 2014-09-30 00:00:00', 'syyyy-mm-dd 
                  hh24:mi:ss') AND "START_DT"<=TO_DATE(' 2014-09-30 00:00:00', 'syyyy-mm-dd hh24:mi:ss'))
           filter("AGMT_ID"=:B1 AND "END_DT">TO_DATE(' 2014-09-30 00:00:00', 'syyyy-mm-dd 
                  hh24:mi:ss') AND "START_DT"<=TO_DATE(' 2014-09-30 00:00:00', 'syyyy-mm-dd hh24:mi:ss'))
       5 - filter("END_DT">TO_DATE(' 2014-09-30 00:00:00', 'syyyy-mm-dd hh24:mi:ss'))
       6 - access("AGMT_ID"=:B1 AND "START_DT"<=TO_DATE(' 2014-09-30 00:00:00', 'syyyy-mm-dd 
                  hh24:mi:ss'))
           filter("AGMT_ID"=:B1 AND "START_DT"<=TO_DATE(' 2014-09-30 00:00:00', 'syyyy-mm-dd 
                  hh24:mi:ss'))
                  
       8 - access("AGMT_ID"=:B1 AND "END_DT">TO_DATE(' 2014-09-30 00:00:00', 'syyyy-mm-dd 
                  hh24:mi:ss') AND "START_DT"<=TO_DATE(' 2014-09-30 00:00:00', 'syyyy-mm-dd hh24:mi:ss'))
           filter("AGMT_ID"=:B1 AND "END_DT">TO_DATE(' 2014-09-30 00:00:00', 'syyyy-mm-dd 
                  hh24:mi:ss') AND "START_DT"<=TO_DATE(' 2014-09-30 00:00:00', 'syyyy-mm-dd hh24:mi:ss'))
                  
       9 - access("A"."PRODUCT_NO"="PRODUCT_NO")
      10 - filter(TO_NUMBER("PRODUCT_TERM")<>0)
      11 - access("A"."SIGN_ORG"="C"."ORG_ID"(+))
      13 - access("A"."PRODUCT_NO"="B"."PRODUCT_NO")
      14 - filter("B"."FREEZE_END_DATE">=TO_DATE(' 2014-01-01 00:00:00', 'syyyy-mm-dd hh24:mi:ss') 
                  AND "B"."FREEZE_END_DATE"<=TO_DATE(' 2014-09-30 00:00:00', 'syyyy-mm-dd hh24:mi:ss'))
      15 - filter("A"."IN_ACCT_DATE" IS NOT NULL AND ("A"."ACCT_FLAG"='1' OR "A"."ACCT_FLAG"='2') 
                  AND "A"."DEDUCT_FLAG"='1' AND "A"."VALID_FLAG"='1')

  • 相关阅读:
    放大镜功能
    background兼容IE9以下版本
    JSON解析
    vue.js 组件-全局组件和局部组件
    i++ ++i的原子性
    【转】程序员面试笔试宝典
    【转】函数调用栈 格式化操作
    【转】TCP三次握手过程
    一些面试题
    【转】HP(惠普)大中华区总裁孙振耀退休感言
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13352023.html
Copyright © 2011-2022 走看看