• 执行计划多版本查看


    -- Create/Recreate indexes 
    create unique index KLNL_DKKHMX_IDX1 on KLNL_DKKHMX (MINGXIBH, DKJIEJUH, FARENDMA)
      tablespace USERS
      pctfree 10
      initrans 2
      maxtrans 255
      storage
      (
        initial 64K
        next 1M
        minextents 1
        maxextents unlimited
      );
    create index KLNL_DKKHMX_IDX3 on KLNL_DKKHMX (DKJIEJUH, FARENDMA)
      tablespace USERS
      pctfree 10
      initrans 2
      maxtrans 255
      storage
      (
        initial 64K
        next 1M
        minextents 1
        maxextents unlimited
      );
      
      
      
      1.
      select nvl(max(to_number(mingxibh)), 0) as lMaxXuhao
    from klnl_dkkhmx
    where dkjiejuh = '20151020000935'
    and farendma = '9999'
    and trim(translate(mingxibh, '0123456789', ' ')) is null;
    
    
    通过ash找到正在执行的慢sql
    
    select a.session_id,
           a.sql_id,
           a.machine,
           a.blocking_session,
           a.sample_time,
           a.module,
           a.PROGRAM,
           a.event,
           b.SQL_TEXT
      from v$active_session_history a, v$sqlarea b
     where a.sql_id = b.sql_id;
     
     
     
    select sql_id,
           sql_text,
           version_count,
           loads,
           hash_value,
           address,
           plan_hash_value,
           old_hash_value,
           last_active_child_address
    from v$sqlarea a
    where a.sql_id='7cvwmagyjx7zt'
    
    
    SQL_ID	7cvwmagyjx7zt
    SQL_TEXT	select nvl(max(to_number(mingxibh)), 0) as lMaxXuhao from klnl_dkkhmx where dkjiejuh = '20151020000935' and farendma = '9999' and trim(translate(mingxibh, '0123456789', ' ')) is null 
    VERSION_COUNT	1
    LOADS	1
    HASH_VALUE	4246642681
    ADDRESS	00000000F242BB00
    PLAN_HASH_VALUE	3928807798
    OLD_HASH_VALUE	696269501
    LAST_ACTIVE_CHILD_ADDRESS	00000000F28CBED8
    
    
    
    
    
    select sql_id,
           sql_text,
           a.loaded_versions,
           hash_value,
           address,
           a.old_hash_value,
           a.plan_hash_value,
          a.child_number,
          a.child_address
    from v$sql a
    where a.sql_id='7cvwmagyjx7zt'
    
    
    
    SQL_ID	7cvwmagyjx7zt
    SQL_TEXT	select nvl(max(to_number(mingxibh)), 0) as lMaxXuhao from klnl_dkkhmx where dkjiejuh = '20151020000935' and farendma = '9999' and trim(translate(mingxibh, '0123456789', ' ')) is null 
    LOADED_VERSIONS	1
    HASH_VALUE	4246642681
    ADDRESS	00000000F242BB00
    OLD_HASH_VALUE	696269501
    PLAN_HASH_VALUE	3928807798
    CHILD_NUMBER	0
    CHILD_ADDRESS	00000000F28CBED8
    
    
    
    --根据sql_id 查看执行计划
    
    SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR('SQL_ID',SQL_CHILD_NUMBER));
    
    SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR('7cvwmagyjx7zt',0));
    
    PLAN_TABLE_OUTPUT
    SQL_ID  7cvwmagyjx7zt, child number 0
    -------------------------------------
    select nvl(max(to_number(mingxibh)), 0) as lMaxXuhao from klnl_dkkhmx 
    where dkjiejuh = '20151020000935' and farendma = '9999' and 
    trim(translate(mingxibh, '0123456789', ' ')) is null
     
    Plan hash value: 3928807798
     
    ----------------------------------------------------------------------------------
    | Id  | Operation          | Name        | Rows  | Bytes | Cost (%CPU)| Time     |
    ----------------------------------------------------------------------------------
    |   0 | SELECT STATEMENT   |             |       |       | 88646 (100)|          |
    |   1 |  SORT AGGREGATE    |             |     1 |    46 |            |          |
    |*  2 |   TABLE ACCESS FULL| KLNL_DKKHMX |     3 |   138 | 88646   (1)| 00:17:44 |
    ----------------------------------------------------------------------------------
     
    Predicate Information (identified by operation id):
    ---------------------------------------------------
     
       2 - filter(("DKJIEJUH"='20151020000935' AND 
                  TRIM(TRANSLATE("MINGXIBH",'0123456789',' ')) IS NULL AND 
                  "FARENDMA"='9999'))
     
    
    
     
     
     等价于
     
     SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR('7cvwmagyjx7zt'));
    PLAN_TABLE_OUTPUT
    SQL_ID  7cvwmagyjx7zt, child number 0
    -------------------------------------
    select nvl(max(to_number(mingxibh)), 0) as lMaxXuhao from klnl_dkkhmx 
    where dkjiejuh = '20151020000935' and farendma = '9999' and 
    trim(translate(mingxibh, '0123456789', ' ')) is null
     
    Plan hash value: 3928807798
     
    ----------------------------------------------------------------------------------
    | Id  | Operation          | Name        | Rows  | Bytes | Cost (%CPU)| Time     |
    ----------------------------------------------------------------------------------
    |   0 | SELECT STATEMENT   |             |       |       | 88646 (100)|          |
    |   1 |  SORT AGGREGATE    |             |     1 |    46 |            |          |
    |*  2 |   TABLE ACCESS FULL| KLNL_DKKHMX |     3 |   138 | 88646   (1)| 00:17:44 |
    ----------------------------------------------------------------------------------
     
    Predicate Information (identified by operation id):
    ---------------------------------------------------
     
       2 - filter(("DKJIEJUH"='20151020000935' AND 
                  TRIM(TRANSLATE("MINGXIBH",'0123456789',' ')) IS NULL AND 
                  "FARENDMA"='9999'))
     
    
    
     
    2.
    
    create  index KLNL_DKKHMX_IDX1 on KLNL_DKKHMX (MINGXIBH, DKJIEJUH, FARENDMA)
    
    
     select sql_id,
           sql_text,
           version_count,
           loads,
           hash_value,
           address,
           plan_hash_value,
           old_hash_value,
           last_active_child_address
    from v$sqlarea a
    where a.sql_id='7cvwmagyjx7zt'
    
    SQL_ID	7cvwmagyjx7zt
    SQL_TEXT	select nvl(max(to_number(mingxibh)), 0) as lMaxXuhao from klnl_dkkhmx where dkjiejuh = '20151020000935' and farendma = '9999' and trim(translate(mingxibh, '0123456789', ' ')) is null 
    VERSION_COUNT	2
    LOADS	3
    HASH_VALUE	4246642681
    ADDRESS	00000000F242BB00
    PLAN_HASH_VALUE	2367693466
    OLD_HASH_VALUE	696269501
    LAST_ACTIVE_CHILD_ADDRESS	00000000F28389F0
    
    
    
    select sql_id,
           sql_text,
           a.loaded_versions,
           hash_value,
           address,
           a.old_hash_value,
           a.plan_hash_value,
          a.child_number,
          a.child_address
    from v$sql a
    where a.sql_id='7cvwmagyjx7zt';
    
    
       	SQL_ID	SQL_TEXT	LOADED_VERSIONS	HASH_VALUE	ADDRESS	OLD_HASH_VALUE	PLAN_HASH_VALUE	CHILD_NUMBER	CHILD_ADDRESS
    1	7cvwmagyjx7zt	select nvl(max(to_number(mingxibh)), 0) as lMaxXuhao from klnl_dkkhmx where dkjiejuh = '20151020000935' and farendma = '9999' and trim(translate(mingxibh, '0123456789', ' ')) is null 	1	4246642681	00000000F242BB00	696269501	2367693466	0	00000000F28CBED8
    2	7cvwmagyjx7zt	select nvl(max(to_number(mingxibh)), 0) as lMaxXuhao from klnl_dkkhmx where dkjiejuh = '20151020000935' and farendma = '9999' and trim(translate(mingxibh, '0123456789', ' ')) is null 	1	4246642681	00000000F242BB00	696269501	2367693466	1	00000000F28389F0
    
    
     SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR('7cvwmagyjx7zt'));
     
     PLAN_TABLE_OUTPUT
    SQL_ID  7cvwmagyjx7zt, child number 0
    -------------------------------------
    select nvl(max(to_number(mingxibh)), 0) as lMaxXuhao from klnl_dkkhmx 
    where dkjiejuh = '20151020000935' and farendma = '9999' and 
    trim(translate(mingxibh, '0123456789', ' ')) is null
     
    Plan hash value: 2367693466
     
    ------------------------------------------------------------------------------------------
    | Id  | Operation             | Name             | Rows  | Bytes | Cost (%CPU)| Time     |
    ------------------------------------------------------------------------------------------
    |   0 | SELECT STATEMENT      |                  |       |       | 15578 (100)|          |
    |   1 |  SORT AGGREGATE       |                  |     1 |    46 |            |          |
    |*  2 |   INDEX FAST FULL SCAN| KLNL_DKKHMX_IDX1 |     3 |   138 | 15578   (1)| 00:03:07 |
    ------------------------------------------------------------------------------------------
     
    Predicate Information (identified by operation id):
    ---------------------------------------------------
     
       2 - filter(("DKJIEJUH"='20151020000935' AND 
                  TRIM(TRANSLATE("MINGXIBH",'0123456789',' ')) IS NULL AND "FARENDMA"='9999'))
     
    
     
     
    
    SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR('7cvwmagyjx7zt',0));
    
    PLAN_TABLE_OUTPUT
    SQL_ID  7cvwmagyjx7zt, child number 0
    -------------------------------------
    select nvl(max(to_number(mingxibh)), 0) as lMaxXuhao from klnl_dkkhmx 
    where dkjiejuh = '20151020000935' and farendma = '9999' and 
    trim(translate(mingxibh, '0123456789', ' ')) is null
     
    Plan hash value: 2367693466
     
    ------------------------------------------------------------------------------------------
    | Id  | Operation             | Name             | Rows  | Bytes | Cost (%CPU)| Time     |
    ------------------------------------------------------------------------------------------
    |   0 | SELECT STATEMENT      |                  |       |       | 15578 (100)|          |
    |   1 |  SORT AGGREGATE       |                  |     1 |    46 |            |          |
    |*  2 |   INDEX FAST FULL SCAN| KLNL_DKKHMX_IDX1 |     3 |   138 | 15578   (1)| 00:03:07 |
    ------------------------------------------------------------------------------------------
     
    Predicate Information (identified by operation id):
    ---------------------------------------------------
     
       2 - filter(("DKJIEJUH"='20151020000935' AND 
                  TRIM(TRANSLATE("MINGXIBH",'0123456789',' ')) IS NULL AND "FARENDMA"='9999'))
     
    
     
    
    SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR('7cvwmagyjx7zt',1));
    
    PLAN_TABLE_OUTPUT
    SQL_ID  7cvwmagyjx7zt, child number 1
    -------------------------------------
    select nvl(max(to_number(mingxibh)), 0) as lMaxXuhao from klnl_dkkhmx 
    where dkjiejuh = '20151020000935' and farendma = '9999' and 
    trim(translate(mingxibh, '0123456789', ' ')) is null
     
    Plan hash value: 2367693466
     
    ------------------------------------------------------------------------------------------
    | Id  | Operation             | Name             | Rows  | Bytes | Cost (%CPU)| Time     |
    ------------------------------------------------------------------------------------------
    |   0 | SELECT STATEMENT      |                  |       |       | 15578 (100)|          |
    |   1 |  SORT AGGREGATE       |                  |     1 |    46 |            |          |
    |*  2 |   INDEX FAST FULL SCAN| KLNL_DKKHMX_IDX1 |     3 |   138 | 15578   (1)| 00:03:07 |
    ------------------------------------------------------------------------------------------
     
    Predicate Information (identified by operation id):
    ---------------------------------------------------
     
       2 - filter(("DKJIEJUH"='20151020000935' AND 
                  TRIM(TRANSLATE("MINGXIBH",'0123456789',' ')) IS NULL AND "FARENDMA"='9999'))
     
    Note
    -----
       - cardinality feedback used for this statement
     
    
     
     
    SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR('7cvwmagyjx7zt',2));
    
    SQL_ID: 7cvwmagyjx7zt, child number: 2 cannot be found 
     
    
     
     
    3.create index KLNL_DKKHMX_IDX2 on KLNL_DKKHMX (DKJIEJUH, FARENDMA);
     
     select sql_id,
           sql_text,
           version_count,
           loads,
           hash_value,
           address,
           plan_hash_value,
           old_hash_value,
           last_active_child_address
    from v$sqlarea a
    where a.sql_id='7cvwmagyjx7zt'
    
    
    SQL_ID	7cvwmagyjx7zt
    SQL_TEXT	select nvl(max(to_number(mingxibh)), 0) as lMaxXuhao from klnl_dkkhmx where dkjiejuh = '20151020000935' and farendma = '9999' and trim(translate(mingxibh, '0123456789', ' ')) is null 
    VERSION_COUNT	3
    LOADS	5
    HASH_VALUE	4246642681
    ADDRESS	00000000F242BB00
    PLAN_HASH_VALUE	992735451
    OLD_HASH_VALUE	696269501
    LAST_ACTIVE_CHILD_ADDRESS	00000000E7BE4F98
    
    
    
    
    
    select sql_id,
           sql_text,
           a.loaded_versions,
           hash_value,
           address,
           a.old_hash_value,
           a.plan_hash_value,
          a.child_number,
          a.child_address
    from v$sql a
    where a.sql_id='7cvwmagyjx7zt';
    
       	SQL_ID	SQL_TEXT	LOADED_VERSIONS	HASH_VALUE	ADDRESS	OLD_HASH_VALUE	PLAN_HASH_VALUE	CHILD_NUMBER	CHILD_ADDRESS
    1	7cvwmagyjx7zt	select nvl(max(to_number(mingxibh)), 0) as lMaxXuhao from klnl_dkkhmx where dkjiejuh = '20151020000935' and farendma = '9999' and trim(translate(mingxibh, '0123456789', ' ')) is null 	1	4246642681	00000000F242BB00	696269501	2367693466	0	00000000F28CBED8
    2	7cvwmagyjx7zt	select nvl(max(to_number(mingxibh)), 0) as lMaxXuhao from klnl_dkkhmx where dkjiejuh = '20151020000935' and farendma = '9999' and trim(translate(mingxibh, '0123456789', ' ')) is null 	1	4246642681	00000000F242BB00	696269501	992735451	1	00000000F28389F0
    3	7cvwmagyjx7zt	select nvl(max(to_number(mingxibh)), 0) as lMaxXuhao from klnl_dkkhmx where dkjiejuh = '20151020000935' and farendma = '9999' and trim(translate(mingxibh, '0123456789', ' ')) is null 	1	4246642681	00000000F242BB00	696269501	992735451	2	00000000E7BE4F98
    
     SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR('7cvwmagyjx7zt'));
     
        	PLAN_TABLE_OUTPUT
    1	SQL_ID  7cvwmagyjx7zt, child number 0
    2	-------------------------------------
    3	select nvl(max(to_number(mingxibh)), 0) as lMaxXuhao from klnl_dkkhmx 
    4	where dkjiejuh = '20151020000935' and farendma = '9999' and 
    5	trim(translate(mingxibh, '0123456789', ' ')) is null
    6	 
    7	Plan hash value: 2367693466
    8	 
    9	------------------------------------------------------------------------------------------
    10	| Id  | Operation             | Name             | Rows  | Bytes | Cost (%CPU)| Time     |
    11	------------------------------------------------------------------------------------------
    12	|   0 | SELECT STATEMENT      |                  |       |       | 15578 (100)|          |
    13	|   1 |  SORT AGGREGATE       |                  |     1 |    46 |            |          |
    14	|*  2 |   INDEX FAST FULL SCAN| KLNL_DKKHMX_IDX1 |     3 |   138 | 15578   (1)| 00:03:07 |
    15	------------------------------------------------------------------------------------------
    16	 
    17	Predicate Information (identified by operation id):
    18	---------------------------------------------------
    19	 
    20	   2 - filter(("DKJIEJUH"='20151020000935' AND 
    21	              TRIM(TRANSLATE("MINGXIBH",'0123456789',' ')) IS NULL AND "FARENDMA"='9999'))
    22	 
    
    
    
    
    
    
    
    SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR('7cvwmagyjx7zt',0));
    
    PLAN_TABLE_OUTPUT
    SQL_ID  7cvwmagyjx7zt, child number 0
    -------------------------------------
    select nvl(max(to_number(mingxibh)), 0) as lMaxXuhao from klnl_dkkhmx 
    where dkjiejuh = '20151020000935' and farendma = '9999' and 
    trim(translate(mingxibh, '0123456789', ' ')) is null
     
    Plan hash value: 2367693466
     
    ------------------------------------------------------------------------------------------
    | Id  | Operation             | Name             | Rows  | Bytes | Cost (%CPU)| Time     |
    ------------------------------------------------------------------------------------------
    |   0 | SELECT STATEMENT      |                  |       |       | 15578 (100)|          |
    |   1 |  SORT AGGREGATE       |                  |     1 |    46 |            |          |
    |*  2 |   INDEX FAST FULL SCAN| KLNL_DKKHMX_IDX1 |     3 |   138 | 15578   (1)| 00:03:07 |
    ------------------------------------------------------------------------------------------
     
    Predicate Information (identified by operation id):
    ---------------------------------------------------
     
       2 - filter(("DKJIEJUH"='20151020000935' AND 
                  TRIM(TRANSLATE("MINGXIBH",'0123456789',' ')) IS NULL AND "FARENDMA"='9999'))
     
    SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR('7cvwmagyjx7zt',1));
     
     PLAN_TABLE_OUTPUT
    SQL_ID  7cvwmagyjx7zt, child number 1
    -------------------------------------
    select nvl(max(to_number(mingxibh)), 0) as lMaxXuhao from klnl_dkkhmx 
    where dkjiejuh = '20151020000935' and farendma = '9999' and 
    trim(translate(mingxibh, '0123456789', ' ')) is null
     
    Plan hash value: 992735451
     
    -------------------------------------------------------------------------------------------------
    | Id  | Operation                    | Name             | Rows  | Bytes | Cost (%CPU)| Time     |
    -------------------------------------------------------------------------------------------------
    |   0 | SELECT STATEMENT             |                  |       |       |    54 (100)|          |
    |   1 |  SORT AGGREGATE              |                  |     1 |    46 |            |          |
    |*  2 |   TABLE ACCESS BY INDEX ROWID| KLNL_DKKHMX      |     3 |   138 |    54   (0)| 00:00:01 |
    |*  3 |    INDEX RANGE SCAN          | KLNL_DKKHMX_IDX2 |    55 |       |     3   (0)| 00:00:01 |
    -------------------------------------------------------------------------------------------------
     
    Predicate Information (identified by operation id):
    ---------------------------------------------------
     
       2 - filter(TRIM(TRANSLATE("MINGXIBH",'0123456789',' ')) IS NULL)
       3 - access("DKJIEJUH"='20151020000935' AND "FARENDMA"='9999')
     
    
     
     
    SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR('7cvwmagyjx7zt',2));
    
    
    PLAN_TABLE_OUTPUT
    SQL_ID  7cvwmagyjx7zt, child number 2
    -------------------------------------
    select nvl(max(to_number(mingxibh)), 0) as lMaxXuhao from klnl_dkkhmx 
    where dkjiejuh = '20151020000935' and farendma = '9999' and 
    trim(translate(mingxibh, '0123456789', ' ')) is null
     
    Plan hash value: 992735451
     
    -------------------------------------------------------------------------------------------------
    | Id  | Operation                    | Name             | Rows  | Bytes | Cost (%CPU)| Time     |
    -------------------------------------------------------------------------------------------------
    |   0 | SELECT STATEMENT             |                  |       |       |   180 (100)|          |
    |   1 |  SORT AGGREGATE              |                  |     1 |    46 |            |          |
    |*  2 |   TABLE ACCESS BY INDEX ROWID| KLNL_DKKHMX      |    64 |  2944 |   180   (0)| 00:00:03 |
    |*  3 |    INDEX RANGE SCAN          | KLNL_DKKHMX_IDX2 |   192 |       |     3   (0)| 00:00:01 |
    -------------------------------------------------------------------------------------------------
     
    Predicate Information (identified by operation id):
    ---------------------------------------------------
     
       2 - filter(TRIM(TRANSLATE("MINGXIBH",'0123456789',' ')) IS NULL)
       3 - access("DKJIEJUH"='20151020000935' AND "FARENDMA"='9999')
     
    Note
    -----
       - cardinality feedback used for this statement
     
    
  • 相关阅读:
    软件杯-题目和插件
    基于《河北省重大技术需求征集系统》的可用性和可修改性战术分析
    基于淘宝网的系统质量属性六大场景
    架构漫谈读后感
    06掌握需求过程阅读笔记之一
    大道至简读后感以及JAVA伪代码
    K8S学习笔记
    事务的七种传播类型、及案例
    香港身份证规则
    oracle函数
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13348772.html
Copyright © 2020-2023  润新知