怎样看懂Oracle的执行计划..doc

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
怎样看懂Oracle的执行计划.

一、什么是执行计划 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、看一个简单的例子: Query Plan SELECT STATEMENT [CHOOSE] Cost=1234 **TABLE ACCESS FULL LARGE [:Q65001] [ANALYZED]--[:Q65001]表示是并行方式,[ANALYZED]表示 该对象已经分析过了 优化模式是CHOOSE的情况下,看Cost参数是否有值来决定采用CBO还是RBO: SELECT STATEMENT [CHOOSE] Cost=1234 --Cost有值,采用CBO SELECT STATEMENT [CHOOSE] Cost= --Cost为空,采用RBO 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 ptimizer=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 its child objects; So it executes its first child step: ID=1 PID=0 HASH JOIN;but this is dependand on its 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 五、表访问方式 1、Full Table Scan (FTS)全表扫描 In a FTS operation, the whole table is read

文档评论(0)

dashewan + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档