问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

怎么看懂oracle的执行计划

发布网友 发布时间:2022-04-23 20:25

我来回答

1个回答

热心网友 时间:2022-04-08 19:26

一、什么是执行计划
An explain plan is a representation of the access path that is taken when a query is executed within Oracle.

二、如何访问数据
At the physical level Oracle reads blocks of data. The smallest amount of data read is a single Oracle block, the largest is constrained by operating system limits (and multiblock i/o). Logically Oracle finds the data to read by using the following methods:
Full Table Scan (FTS) --全表扫描
Index Lookup (unique & non-unique) --索引扫描(唯一和非唯一)
Rowid --物理行id

三、执行计划层次关系
When looking at a plan, the rightmost (ie most inndented) uppermost operation is the first thing that is executed. --采用最右最上最先执行的原则看层次关系,在同一级如果某个动作没有子ID就最先执行
1.一个简单的例子:
SQL> select /*+parallel (e 4)*/ * from emp e;
Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=CHOOSE (Cost=1 Card=82 Bytes=7134)
1 0 TABLE ACCESS* (FULL) OF 'EMP' (Cost=1 Card=82 Bytes=7134):Q5000
--[:Q5000]表示是并行方式
1 PARALLEL_TO_SERIAL SELECT /*+ NO_EXPAND ROWID(A1) */ A1."EMPNO"
,A1."ENAME",A1."JOB",A1."MGR",A1."HI
优化模式是CHOOSE的情况下,看Cost参数是否有值来决定采用CBO还是RBO:
SELECT STATEMENT [CHOOSE] Cost=1234--Cost有值,采用CBO
SELECT STATEMENT [CHOOSE] --Cost为空,采用RBO(9I是如此显示的)
2.层次的父子关系的例子:
PARENT1
**FIRST CHILD
****FIRST GRANDCHILD
**SECOND CHILD
Here the same principles apply, the FIRST GRANDCHILD is the initial operation then the FIRST CHILD followed by the SECOND CHILD and finally the PARENT collates the output.

四、例子解说
Execution Plan
----------------------------------------------------------
0 **SELECT STATEMENT Optimizer=CHOOSE (Cost=3 Card=8 Bytes=248)
1 0 **HASH JOIN (Cost=3 Card=8 Bytes=248)
2 1 ****TABLE ACCESS (FULL) OF 'DEPT' (Cost=1 Card=3 Bytes=36)
3 1 ****TABLE ACCESS (FULL) OF 'EMP' (Cost=1 Card=16 Bytes=304)
左侧的两排数据,前面的是序列号ID,后面的是对应的PID(父ID)。
A shortened summary of this is:
Execution starts with ID=0: SELECT STATEMENT but this is dependand on it's child objects
So it executes its first child step: ID=1 PID=0 HASH JOIN but this is dependand on it's child objects
So it executes its first child step: ID=2 PID=1 TABLE ACCESS (FULL) OF 'DEPT'
Then the second child step: ID=3 PID=2 TABLE ACCESS (FULL) OF 'EMP'
Rows are returned to the parent step(s) until finished
如何解析oracle执行计划

1、直接File->New->Explain Plan Window,在窗口中执行sql可以查看计划结果。其中,Cost表示cpu的消耗,单位为n%,Cardinality表示执行的行数,等价Rows。2、先执行 EXPLAIN PLAN FOR select * from tableA where paraA=1,再 select * from table(DBMS_XPLAN.DISPLAY)便可以看到oracle的执行计划了,...

oracle-查看执行计划及sql执行顺序

查看执行计划与顺序查看SQL执行计划时,通常观察执行顺序是从右下角开始,然后逐行向上查看。顺序分析有助于理解Oracle如何优化查询。SQL执行步骤1. 语法分析:首先检查SQL语句是否符合规范,解析表达式意义。2. 语义分析:确保涉及的数据库对象存在且用户具有相应权限。3. 视图与表达式转换:处理视图查询并简化...

如何解析oracle执行计划

执行计划将包含一个根,没有父(操作)父(操作)可以有一个或更多的子(操作),其ID将小于子(操作)ID 一子(操作)可只有一个父(操作),显示时右缩进;含许多子(操作)时,缩进相同 下面是一个执行计划示例。SQL> explain plan for 2 select e.empno, e.ename, d.dname 3 from emp...

查看ORACLE执行计划的几种常用方法

我们首先列出查看执行计划的一些常用方法:1.explain plan命令PL/SQL Developer中通过快捷键F5就可以查看目标SQL的执行计划了。但其实按下F5后,实际后台调用的就是explain plan命令,相当于封装了该命令。explain plan使用方法:(1) 执行explain plan for + SQL(2) 执行select * from table(dbms_xplan....

Oracle SQL优化之执行计划(一)--单表访问index range scan

Oracle SQL优化深入理解执行计划,特别是单表访问的index range scan。执行计划是数据库执行SQL语句的详细步骤分解,它展示了数据库如何将SQL转化为可操作的内部流程,帮助我们理解数据检索方式和执行步骤。在优化中,我们关注的执行计划通常分为单表访问和全表扫描两大类。本文将首先探讨单表访问,如Index ...

python oracle执行计划怎么看

1: 在PL/SQL下按F5查看执行计划。第三方工具toad等。 很多人以为PL/SQL的执行计划只能看到基数、优化器、耗费等基本信息,其实这个可以在PL/SQL工具里面设置的。可以看到很多其它信息,如下所示 2: 在SQL*PLUS(PL/SQL的命令窗口和SQL窗口均可)下执行下面步骤 [sql] view plain copy SQL>EXPLAIN ...

oracle 执行计划 有多个plan

看懂执行计划也就成了SQL优化的先决条件。 这里的SQL优化指的是SQL性能问题的定位,定位后就可以解决问题。 一. 查看执行计划的三种方法 1.1 设置autotrace 序号 命令 解释 1 SET AUTOTRACE OFF 此为默认值,即关闭Autotrace 2 SET AUTOTRACE ON EXPLAIN 只显示执行计划 3 SET AUTOTRACE ON STATISTICS 只显示执行...

oracle 执行计划,有人能跟我解释一下 执行计划里面的 operation字段 的...

执行计划 --- Plan hash value: 2852011669 --- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | ---

oracle pl/sql 执行计划怎么看

打开PL/SQL Developer软件,请确保plsql能够成功连接到一个oracle数据库。在PL/SQL Developer中写好一段SQL代码,按F5,或者点击“执行执行计划”图标,PL/SQL Developer会自动打开执行计划窗口,显示该SQL的执行计划。可以看到窗口上方是sql语句,下方显示执行计划表格。表格的列主要包含描述、用户、对象、...

oracle sql执行计划怎么分析

1.先查看sql语句的结构,看语句中连接是union,还是等值连接还是左、右连接,再看连接中的表数量。2.查看执行计划中出现异常的部分。3.查看各表的索引情况及表是否是分区的,在where条件上使用的索引列是否正确,看统计分析表中对表的分析结果是否正确 4.分析表的用途,表的数据日增长量。5.分析为什么...

oracle执行计划怎么解读 怎么看oracle执行计划 oracle如何查看执行计划 oracle查看执行计划 及优化 oracle执行计划cost详解 oracle的执行计划查看顺序 Oracle explain执行计划详解 oracle执行计划rows为1 oracle执行计划参数详解
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
胶原蛋白线双眼皮是不是永久性 双眼皮埋线是蛋白质还是尼龙绳-双眼皮埋线蛋白线多久能吸收 人体输液的“港口”完全植入式输液港 双眼皮宽变窄修复的方法 同心保家庭重疾险靠不靠谱?便宜吗? 做完双眼皮一宽一窄怎么办 喝全脂奶粉对长高有没有什么好处? redmine中“选择一个项目..."下拉列表框中为什么只列出一个项目,我建... 南充市龙门中学实力现在怎样?他的奥赛班是重点班么? 感情中为什么总是不知足呢? 缕是什么字? 谁能帮我取一个带方字的网名,我是一个15岁的男生,如果里面带个森字,那最好了,帮帮忙,谢谢啦。要有诗 讲解ORACLE的执行计划的几种方法 缕什么字 如何输入真名字取网名? Oracle 执行计划看哪些 谁帮我取一个好看一点的网名中间一个要带字方的 “缕”字怎么读? 方字怎么起微信网名? Oracle如何查看执行计划 如何看懂ORACLE执行计划 麻烦大家帮我想一个方字开头的网名(女生网名) 什么是oracle执行计划 大神们用方字和春字帮我起个微信网名 求带“方”字的个性非主流QQ网名 名字里有方和玲,取什么样的网名好啊 女生带方字的网名 我姓方,造个和方字有关的网名 方字可以取什么特别的网名? 2022年青少年身高体重表 以方起个名字? 家常熬姜汤可以加些什么东西 oracle中的sql执行计划怎么看 “缕”的拼音是什么? 如何查看Oracle执行计划,并通过执行计划优化SQL 缕的读音是什么? 求助:请帮助取个‘方’字开头的男孩和女孩的名字 怎样看懂Oracle的执行计划 “缕”的组词有哪些呢? 请帮忙起个名字:姓方,女生 要可爱点的 要3个字的 好听点的 谢谢了 oracle的执行计划怎么看 煮姜汤要放什么? oracle 怎么查看执行计划 缕的意思 oracle执行计划,每一项列详细的解释,谁能给个? 缕组词有哪些词语 煮姜汤一定要放红糖吗? 如何分析oracle的执行计划 这个字缕读什么............... 熬姜汤可以放白糖吗?