1、解释计划

当使用explain plan来为一个查询生成预期的执行计划时,输出将包括一下几种:

  SQL访问的每一张表;

  访问每张表的方法;

  每一个需要联结的数据源所使用的联结方法;

  按次序列出的所有需要完成的运算;

  计划中各步骤的谓语列表信息等等

explain plan forselect t1.name, t2.gradefrom table1 t1left join table2 t2on t1.id = t2.idwhere t1.id =704
;
Explained

  查询得:(与谓语有关的运算都会有*号标注)

select * from table(dbms_xplan.display);
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
Plan hash value: 2814340807
--------------------------------------------------------------------------------
| Id  | Operation                    | Name            | Rows  | Bytes | Cost (%
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT             |                 |     1 |   141 |     8
|*  1 |  HASH JOIN OUTER             |                 |     1 |   141 |     8
|   2 |   TABLE ACCESS BY INDEX ROWID| TABLE1          |     1 |   115 |     2
|*  3 |    INDEX RANGE SCAN          | INDEX_TABLE1_ID |     1 |       |     1
|*  4 |   TABLE ACCESS FULL          | TABLE2          |     1 |    26 |     5
--------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------1 - access("T1"."ID"="T2"."ID"(+))3 - access("T1"."ID"=704)4 - filter("T2"."ID"(+)=704)
NotePLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------- dynamic sampling used for this statement (level=2)
22 rows selected

  

2、系统解释计划表的内容

desc plan_table
Name              Type           Nullable Default Comments
----------------- -------------- -------- ------- --------
STATEMENT_ID      VARCHAR2(30)   Y
PLAN_ID           NUMBER         Y
TIMESTAMP         DATE           Y
REMARKS           VARCHAR2(4000) Y
OPERATION         VARCHAR2(30)   Y
OPTIONS           VARCHAR2(255)  Y
OBJECT_NODE       VARCHAR2(128)  Y
OBJECT_OWNER      VARCHAR2(30)   Y
OBJECT_NAME       VARCHAR2(30)   Y
OBJECT_ALIAS      VARCHAR2(65)   Y
OBJECT_INSTANCE   INTEGER        Y
OBJECT_TYPE       VARCHAR2(30)   Y
OPTIMIZER         VARCHAR2(255)  Y
SEARCH_COLUMNS    NUMBER         Y
ID                INTEGER        Y
PARENT_ID         INTEGER        Y
DEPTH             INTEGER        Y
POSITION          INTEGER        Y
COST              INTEGER        Y
CARDINALITY       INTEGER        Y
BYTES             INTEGER        Y
OTHER_TAG         VARCHAR2(255)  Y
PARTITION_START   VARCHAR2(255)  Y
PARTITION_STOP    VARCHAR2(255)  Y
PARTITION_ID      INTEGER        Y
OTHER             LONG           Y
OTHER_XML         CLOB           Y
DISTRIBUTION      VARCHAR2(30)   Y
CPU_COST          INTEGER        Y
IO_COST           INTEGER        Y
TEMP_SPACE        INTEGER        Y
ACCESS_PREDICATES VARCHAR2(4000) Y
FILTER_PREDICATES VARCHAR2(4000) Y
PROJECTION        VARCHAR2(4000) Y
TIME              INTEGER        Y
QBLOCK_NAME       VARCHAR2(30)   Y

其中常用字段说明

创建自己的解释计划

 select id,parent_id,lpad(' ',level)||operation||' ' ||options||' '||object_name as operationfrom plan_tablestart with id=0connect by prior id = parent_id; 

  结果为

                                     ID                               PARENT_ID OPERATION
--------------------------------------- --------------------------------------- -----------------------------------------0                                          SELECT STATEMENT1                                       0   HASH JOIN OUTER2                                       1    TABLE ACCESS BY INDEX ROWID TABLE13                                       2     INDEX RANGE SCAN INDEX_TABLE1_ID4                                       1    TABLE ACCESS FULL TABLE2

通过查看解释计划,可以针对性的修改自己的SQL语句来提升效率。比如修改或者增加索引等等

查看执行计划与此相似,可以通过dbms.display_cursor函数来查看,也可以通过查询V$SQL_PLAN_STATISTICS_ALL中的相关字段来查看。

  

  

转载于:https://www.cnblogs.com/mozizhu/p/4206549.html

创建自己的oracle解释计划相关推荐

  1. oracle 解释计划权限,ACL的使用:主机权限规划管理--Oracle脚本

    一.修改文件系统,使文件系统支持ACL功能. 1)执行mount命令,得到以下输出: /dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw) proc  ...

  2. 【转】Oracle执行计划解释

    Oracle执行计划解释 一.相关的概念     Rowid的概念:rowid是一个伪列,既然是伪列,那么这个列就不是用户定义,而是系统自己给加上的. 对每个表都有一个rowid的伪列,但是表中并不物 ...

  3. oracle 阻止谓语前推,Oracle之深入浅出(二)--SQL原理、解释计划与执行计划

    2.SQL执行原理 2.1.软解析与硬解析 在执行每一条sql的时候,oracle必须解析sql并且装载到高速缓存中,解析的过程包括很多内容,验证语法.检验提及的对象.确认用户权限等过程后还需要手机它 ...

  4. 看懂Oracle执行计划(转载)

    转载自 写的很好,屯一波 最近一直在跟Oracle打交道,从最初的一脸懵逼到现在的略有所知,也来总结一下自己最近所学,不定时更新ing- 一:什么是Oracle执行计划? 执行计划是一条查询语句在Or ...

  5. 2022年Oracle学习计划

    2022年Oracle学习计划 Q1(2022-1-1 至 2022-3-31) Q1(一月份) 1.1 ~ 1.14 学习内容: 1.15 ~ 1.30 学习内容: Q1(二月份) 2.11 ~ 2 ...

  6. Oracle总结(一):Oracle执行计划

    看懂Oracle执行计划 最近一直在跟Oracle打交道,从最初的一脸懵逼到现在的略有所知,也来总结一下自己最近所学,不定时更新ing- 1.什么是Oracle执行计划? 执行计划是一条查询语句在Or ...

  7. ORACLE执行计划的一些基本概念

    本文介绍了ORACLE执行计划的一些基本概念,供学习应用. 一.相关的概念 Rowid的概念:rowid是一个伪列,既然是伪列,那么这个列就不是用户定义,而是系统自己给加上的.对每个表都有一个rowi ...

  8. Oracle 执行计划

    Oracle执行计划是什么 关于执行计划的概念,相信大家都有过基础的了解.这里不详细解释概念性东西,只需要知道.执行计划是Oracle根据SQL语句生成的一个执行步骤的表述即可. 执行计划分三部分:1 ...

  9. 海天 oracle,Oracle执行计划详解

    作者:TTTBLOG --- 简介: 本文全面详细介绍oracle执行计划的相关的概念,访问数据的存取方法,表之间的连接等内容. 并有总结和概述,便于理解与记忆! +++ 目录 --- 一.相关的概念 ...

  10. oracle执行计划分析(转载)

    2019独角兽企业重金招聘Python工程师标准>>> (转载,原文地址:http://blog.itpub.net/24478467/viewspace-705754/) 简介: ...

最新文章

  1. 人们需要更美观的数据中心
  2. js文件引用 webpack_想了解Webpack,看这篇就够了
  3. 如何利用CycleGAN实现男女性别转换
  4. 网易干货 | 浅析视频Jitter Buffer
  5. 每个Java应用容器都要包含tomcat_部署一个不依赖tomcat容器的应用
  6. ajax创建对象,ajax创建对象
  7. 使用Google OAuth 2.0存取Google API (Google Client ID)
  8. easyui datagrid 单选框 效果
  9. 【Elasticsearch】es 插件类型
  10. 20-40-020-安装-kafka-eagle-bin-1.3.3安装
  11. angularjs指令(一)
  12. ORACLE定期清理INACTIVE会话
  13. 利用c#实现远程注入非托管WIN32程序,并利用嵌入汇编调用非托管WIN32程序中的内部过程...
  14. Xilinx FPGA中RS编码IP核之Generator Start
  15. 基于协同过滤的推荐算法
  16. libtorrent源码分析(二)VS上libtorrent编译总结
  17. C++ function
  18. HtmlHelper用法大全(上)
  19. 新手小白学吉他,如何掌握基础快速入门
  20. 架构思维成长系列教程(十二)- 云平台架构设计

热门文章

  1. apache 网页301重定向、自定义400/403/404/500错误页面
  2. hibernate4平台搭建
  3. SQL Server中的MD5实现方法
  4. vs2008 jQuery 智能提示失败可能是Jquery版本问题
  5. 反击ARP欺骗 我和网络执法官的战斗
  6. 爱因斯坦谜题:谁养鱼(C#版)
  7. Unity Invoke 函数调用
  8. CSDN Markdown帮助文档
  9. TortoiseGit安装配置详解同时支持github,gitee,gitlab
  10. 6.5移相器(Phasers)