• oracle range 分区访问


    explain plan for select *
      from esb2_trans_log t
     where t.trans_date >= 
           to_date('2018-06-07 00:00:00', 'yyyy-mm-dd hh24:mi:ss') 
       and t.trans_date <= 
           to_date('2018-06-07 23:59:59', 'yyyy-mm-dd hh24:mi:ss') ;
           
       select * from table(dbms_xplan.display());
       
        PLAN_TABLE_OUTPUT
    1 Plan hash value: 1868862569
    2  
    3 ---------------------------------------------------------------------------------------------------------
    4 | Id  | Operation              | Name           | Rows  | Bytes | Cost (%CPU)| Time     | Pstart| Pstop |
    5 ---------------------------------------------------------------------------------------------------------
    6 |   0 | SELECT STATEMENT       |                |    17M|  3526M|   150K  (1)| 00:30:06 |       |       |
    7 |   1 |  PARTITION RANGE SINGLE|                |    17M|  3526M|   150K  (1)| 00:30:06 |     6 |     6 |
    8 |*  2 |   TABLE ACCESS FULL    | ESB2_TRANS_LOG |    17M|  3526M|   150K  (1)| 00:30:06 |     6 |     6 |
    9 ---------------------------------------------------------------------------------------------------------
    10  
    11 Predicate Information (identified by operation id):
    12 ---------------------------------------------------
    13  
    14  2 - filter("T"."TRANS_DATE"<=TO_DATE(' 2018-06-07 23:59:59', 'syyyy-mm-dd hh24:mi:ss'))




    explain plan for  
     select * from esb2_trans_log t
     where t.trans_date=date'2018-06-07';
           
       select * from table(dbms_xplan.display());
       
          PLAN_TABLE_OUTPUT
    1 Plan hash value: 1868862569
    2  
    3 ---------------------------------------------------------------------------------------------------------
    4 | Id  | Operation              | Name           | Rows  | Bytes | Cost (%CPU)| Time     | Pstart| Pstop |
    5 ---------------------------------------------------------------------------------------------------------
    6 |   0 | SELECT STATEMENT       |                |   222 | 46620 |   150K  (1)| 00:30:05 |       |       |
    7 |   1 |  PARTITION RANGE SINGLE|                |   222 | 46620 |   150K  (1)| 00:30:05 |     6 |     6 |
    8 |*  2 |   TABLE ACCESS FULL    | ESB2_TRANS_LOG |   222 | 46620 |   150K  (1)| 00:30:05 |     6 |     6 |
    9 ---------------------------------------------------------------------------------------------------------
    10  
    11 Predicate Information (identified by operation id):
    12 ---------------------------------------------------
    13  
    14  2 - filter("T"."TRANS_DATE"=TO_DATE(' 2018-06-07 00:00:00', 'syyyy-mm-dd hh24:mi:ss'))




     select /*+parallel(a 8)*/  a.trans_date from  esb2_trans_log a 
     where a.esbflowno in (
     select t.esbflowno from esb2_trans_log t
     where t.trans_date=date'2018-06-07'
     )
     
     2018/6/6 23:59:59
    2018/6/6 23:59:59
    2018/6/7
    2018/6/7 0:00:01
    2018/6/7 0:00:01
    2018/6/7 0:00:01
    2018/6/7 0:00:03
    2018/6/7
    2018/6/7
    2018/6/7
    2018/6/7
    2018/6/7
    2018/6/7
    2018/6/7
    2018/6/7
    2018/6/7
    2018/6/7
    2018/6/7
    2018/6/7
    2018/6/7
    2018/6/7 0:00:01
    2018/6/7 0:00:01
    2018/6/7 0:00:01
    2018/6/7
    2018/6/7
    2018/6/7
    2018/6/7
    2018/6/7
    2018/6/7
    2018/6/7
    2018/6/7
    2018/6/7
    2018/6/7
    2018/6/7
    2018/6/7
    2018/6/7
    2018/6/7
    2018/6/7
    2018/6/7
    2018/6/7 0:00:01


        ESBFLOWNO FLOWSTEPID ESBSERVICEFLOWNO ESBSERVSEQU REQFLOWNO RESPFLOWNO SERVICETYPE TRANSTAMP TRANSTAMP1 TRANSTAMP2 TRANSTAMP3 TRANSTAMP4 LOCATIONID CHANNELID SERVICEID RESPSTATUS RESPCODE RESPMSG OPERSTAMP PREFLOWNO POSTFLOWNO LOGICCHANNEL REALCHANNEL SERVICEFLOW LOGICSYSTEM REALSYSTEM TRANS_DATE LOOP
    1 esbapp1-esb_in-20180607000000-999114 1 2018-06-07 00:00:00.602 2018-06-07 00:00:00.602 esb_in FDS 0300300002402 1 07-6月 -18 12.00.00.917 上午 FDS 2018/6/7 esbapp1
    2 esbapp1-esb_in-20180607000000-999114 2 1 2018-06-07 00:00:00.960 2018-06-07 00:00:00.960 esb_out FDS 0300300002402 1 07-6月 -18 12.00.01.917 上午 FDS ELINK 2018/6/7 0:00:01 
    3 esbapp1-esb_in-20180607000000-999114 3 1 2018-06-07 00:00:00.984 2018-06-07 00:00:00.960 2018-06-07 00:00:00.984 esb_out FDS 0300300002402 1 07-6月 -18 12.00.01.918 上午 FDS ELINK 2018/6/7 0:00:01 
    4 esbapp1-esb_in-20180607000000-999114 4 21503020180606010023839301 50010120180607010000876368 21503020180606010023839301 2018-06-07 00:00:00.990 2018-06-07 00:00:00.602 2018-06-07 00:00:00.960 2018-06-07 00:00:00.984 2018-06-07 00:00:00.990 esb_in FDS 0300300002402 1 9999 前置无记录[100] 07-6月 -18 12.00.01.918 上午 FDS ELINK 2018/6/7 0:00:01 esbapp1




    -- Create table
    create table ESB2_TRANS_LOG
    (
      esbflowno        VARCHAR2(256) not null,
      flowstepid       VARCHAR2(3) not null,
      esbserviceflowno VARCHAR2(52),
      esbservsequ      VARCHAR2(52),
      reqflowno        VARCHAR2(52),
      respflowno       VARCHAR2(52),
      servicetype      CHAR(1),
      transtamp        VARCHAR2(30) not null,
      transtamp1       VARCHAR2(30),
      transtamp2       VARCHAR2(30),
      transtamp3       VARCHAR2(30),
      transtamp4       VARCHAR2(30),
      locationid       VARCHAR2(20) not null,
      channelid        VARCHAR2(40),
      serviceid        VARCHAR2(40) default 'NULL',
      respstatus       CHAR(1),
      respcode         VARCHAR2(64),
      respmsg          VARCHAR2(4000),
      operstamp        TIMESTAMP(3) default systimestamp not null,
      preflowno        VARCHAR2(52),
      postflowno       VARCHAR2(52),
      logicchannel     VARCHAR2(40),
      realchannel      VARCHAR2(40),
      serviceflow      VARCHAR2(40),
      logicsystem      VARCHAR2(40),
      realsystem       VARCHAR2(40),
      trans_date       DATE default sysdate not null,
      loop             VARCHAR2(20)
    )
    partition by range (TRANS_DATE)
    (
      partition ESB2_TRANS_LOG_180602 values less than (TO_DATE(' 2018-06-03 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
        tablespace ESBTRANS03_DATA_TBS_03
        pctfree 10
        initrans 1
        maxtrans 255
        storage
        (
          initial 8M
          next 1M
          minextents 1
          maxextents unlimited
        ),
  • 相关阅读:
    check_mysql.sh
    shell 数组长度
    Shell脚本中计算字符串长度的5种方法
    非缓冲文件编程(实时操作)
    ferror,clearerr和EOF含义
    密码库生成
    筛选出多个数据并判断
    扫描有分隔符的数据
    unicode文件处理(如果是ANSI编码就不需要了)
    ferror,perror,cleaner
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13349184.html
Copyright © 2020-2023  润新知