创建自己的oracle解释计划
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解释计划相关推荐
- oracle 解释计划权限,ACL的使用:主机权限规划管理--Oracle脚本
一.修改文件系统,使文件系统支持ACL功能. 1)执行mount命令,得到以下输出: /dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw) proc ...
- 【转】Oracle执行计划解释
Oracle执行计划解释 一.相关的概念 Rowid的概念:rowid是一个伪列,既然是伪列,那么这个列就不是用户定义,而是系统自己给加上的. 对每个表都有一个rowid的伪列,但是表中并不物 ...
- oracle 阻止谓语前推,Oracle之深入浅出(二)--SQL原理、解释计划与执行计划
2.SQL执行原理 2.1.软解析与硬解析 在执行每一条sql的时候,oracle必须解析sql并且装载到高速缓存中,解析的过程包括很多内容,验证语法.检验提及的对象.确认用户权限等过程后还需要手机它 ...
- 看懂Oracle执行计划(转载)
转载自 写的很好,屯一波 最近一直在跟Oracle打交道,从最初的一脸懵逼到现在的略有所知,也来总结一下自己最近所学,不定时更新ing- 一:什么是Oracle执行计划? 执行计划是一条查询语句在Or ...
- 2022年Oracle学习计划
2022年Oracle学习计划 Q1(2022-1-1 至 2022-3-31) Q1(一月份) 1.1 ~ 1.14 学习内容: 1.15 ~ 1.30 学习内容: Q1(二月份) 2.11 ~ 2 ...
- Oracle总结(一):Oracle执行计划
看懂Oracle执行计划 最近一直在跟Oracle打交道,从最初的一脸懵逼到现在的略有所知,也来总结一下自己最近所学,不定时更新ing- 1.什么是Oracle执行计划? 执行计划是一条查询语句在Or ...
- ORACLE执行计划的一些基本概念
本文介绍了ORACLE执行计划的一些基本概念,供学习应用. 一.相关的概念 Rowid的概念:rowid是一个伪列,既然是伪列,那么这个列就不是用户定义,而是系统自己给加上的.对每个表都有一个rowi ...
- Oracle 执行计划
Oracle执行计划是什么 关于执行计划的概念,相信大家都有过基础的了解.这里不详细解释概念性东西,只需要知道.执行计划是Oracle根据SQL语句生成的一个执行步骤的表述即可. 执行计划分三部分:1 ...
- 海天 oracle,Oracle执行计划详解
作者:TTTBLOG --- 简介: 本文全面详细介绍oracle执行计划的相关的概念,访问数据的存取方法,表之间的连接等内容. 并有总结和概述,便于理解与记忆! +++ 目录 --- 一.相关的概念 ...
- oracle执行计划分析(转载)
2019独角兽企业重金招聘Python工程师标准>>> (转载,原文地址:http://blog.itpub.net/24478467/viewspace-705754/) 简介: ...
最新文章
- 人们需要更美观的数据中心
- js文件引用 webpack_想了解Webpack,看这篇就够了
- 如何利用CycleGAN实现男女性别转换
- 网易干货 | 浅析视频Jitter Buffer
- 每个Java应用容器都要包含tomcat_部署一个不依赖tomcat容器的应用
- ajax创建对象,ajax创建对象
- 使用Google OAuth 2.0存取Google API (Google Client ID)
- easyui datagrid 单选框 效果
- 【Elasticsearch】es 插件类型
- 20-40-020-安装-kafka-eagle-bin-1.3.3安装
- angularjs指令(一)
- ORACLE定期清理INACTIVE会话
- 利用c#实现远程注入非托管WIN32程序,并利用嵌入汇编调用非托管WIN32程序中的内部过程...
- Xilinx FPGA中RS编码IP核之Generator Start
- 基于协同过滤的推荐算法
- libtorrent源码分析(二)VS上libtorrent编译总结
- C++ function
- HtmlHelper用法大全(上)
- 新手小白学吉他,如何掌握基础快速入门
- 架构思维成长系列教程(十二)- 云平台架构设计