`
langgufu
  • 浏览: 2307012 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

解读Oracle执行计划

阅读更多

本篇解释执行计划中基本项的含义

关于生成和显示Oracle执行计划的方法请阅读

http://blog.csdn.net/laoshangxyc/article/details/8629123

下面举例进行解释

 

 

[html] view plaincopy
  1. SQL> explain plan for  
  2.   2  select a.name,b.name  
  3.   3  from t1 a,t2 b  
  4.   4  where a.id=b.id  
  5.   5  and a.id='1';  
  6.   
  7. Explained.  
  8.   
  9. SQL> set lines 200  
  10. SQL> set pagesize 0  
  11. SQL> select * from table(dbms_xplan.display());  
  12. Plan hash value: 2680223496  
  13.   
  14. --------------------------------------------------------------------------------------  
  15. | Id  | Operation                    | Name  | Rows  | Bytes | Cost (%CPU)| Time     |  
  16. --------------------------------------------------------------------------------------  
  17. |   0 | SELECT STATEMENT             |       |     1 |    20 |     5   (0)| 00:00:01 |  
  18. |   1 |  NESTED LOOPS                |       |     1 |    20 |     5   (0)| 00:00:01 |  
  19. |   2 |   TABLE ACCESS BY INDEX ROWID| T1    |     1 |    10 |     1   (0)| 00:00:01 |  
  20. |*  3 |    INDEX UNIQUE SCAN         | T1_PK |     1 |       |     0   (0)| 00:00:01 |  
  21. |*  4 |   TABLE ACCESS FULL          | T2    |     1 |    10 |     4   (0)| 00:00:01 |  
  22. --------------------------------------------------------------------------------------  
  23.   
  24. Predicate Information (identified by operation id):  
  25. ---------------------------------------------------  
  26.   
  27.    3 - access("A"."ID"=1)  
  28.    4 - filter("B"."ID"=1)  
  29.   
  30. 17 rows selected.  

对于Oracle执行计划,并列的行从上往下执行,非并列的行,靠右的先执行。

 

例如本例中:

id为3的操作最靠右,所以最先执行,其次是id为2和4的操作较靠右,而且并列,那么按照并列从上往下执行的原则,id为2的操作比id为4的操作先执行。

然后执行id为1的操作。

那么本例中执行计划按id排序为 3>2>4>1

---------------------------------------------------------------------------------------------------------------

本例中使用的DBMS_XPLAY显示的执行计划,其中:

id:为每个操作的唯一序列号,

operation:为每个操作的名称和方式,

name:是操作对象

Rows:Oracle估算当前操作影响的行数

bytes:Oracle估算当前操作的影响的数据量(单位byte)

Cost:Oracle计算出来的执行该操作的代价

Time:Oracle估算出来的该操作花费的时间

-----------------------------------------------------------------------------------------------------------------

id为0的操作为SELECT STATEMENT表示这条语句的类型为一条select语句,而非一个真实的操作。

id为1的操作表示它需要对id为2和4的操作得来的结果集以嵌套循环的方式进行数据关联。

id为2的操作是TABLE ACCESS BY INDEX ROWID,name是T1,表示它是通过索引的ROWID来访问表T1的。而索引上的ROWID则需要通过其子操作3来获取。

id为3的操作是INDEX UNIQUE SCAN,name是T1_PK表明那是通过主键唯一键值来获取其父操作2需要的Rowid。

id为4的操作是TABLE ACCESS FULL,name是T2,表明是对T2做的一个全表扫描。

注意:id为3和4的前面有*,表示这个操作有谓词条件:访问条件(access)或过滤条件(filter)

如上面的

 

[html] view plaincopy
  1. Predicate Information (identified by operation id):  
  2. ---------------------------------------------------  
  3.   
  4.    3 - access("A"."ID"=1)  
  5.    4 - filter("B"."ID"=1)  

 

访问条件access和过滤条件filter的区别

访问条件是帮助操作在对象上定位到符合条件的数据,然后再读取数据。

过滤条件是操作已经从对象上获取了数据,然后根据条件将不符合要求的数据过滤掉。

分享到:
评论

相关推荐

    oracle执行计划解读

    Oracle 执行计划解读 Oracle 执行计划是一种查询执行路径的表示形式,它展示了 Oracle 数据库在执行查询时访问数据的路径。下面是 Oracle 执行计划的详细解读,包括执行计划的定义、访问数据的方式、执行计划层次...

    oracle 执行计划 详解

    为了更好地理解和优化 Oracle 数据库的执行计划,我们需要了解执行计划的生成过程、优化方法和执行计划的解读方法。 执行计划生成过程 执行计划的生成过程可以分为四个步骤: 1. 解析:判断对象是否存在,是否有...

    Oracle执行计划详细解读.pptx

    Oracle 执行计划详细解读 Oracle 执行计划是 Oracle 数据库中的一种机制,用于优化 SQL 语句的执行效率。执行计划是 Oracle 数据库内部的一种机器级代码,决定如何访问存储器,得到需要的结果集。 执行计划的主要...

    oracle 执行计划

    在数据库管理与优化领域中,理解并掌握如何查看及解读Oracle执行计划是一项非常重要的技能。执行计划对于SQL语句的性能优化至关重要,它可以帮助我们快速定位到可能存在的性能瓶颈,并据此进行相应的调整。本文将...

    oracle执行计划建立与阅读

    Oracle执行计划是数据库管理系统在处理SQL语句时的预估工作流程,它是Oracle优化器根据当前数据分布、索引情况和系统资源等信息选择的最佳执行策略。了解和分析执行计划对于提升SQL语句的性能至关重要。 一、生成...

    Oracle执行计划与SQL优化实例.pptx

    《Oracle执行计划与SQL优化实例》这一主题深入探讨了数据库管理与优化的关键方面,尤其针对Oracle数据库环境。本文旨在解析并扩展此PPTX文件中提及的重要知识点,涵盖执行计划的概念、获取方法、解读技巧以及SQL优化...

    oracle执行计划详解

    在Oracle数据库管理中,执行计划是优化和调试SQL语句不可或缺的一部分。执行计划详细描述了数据库优化器为了执行一条SQL语句所采取的步骤。理解这些步骤有助于开发者或数据库管理员判断当前的执行计划是否是高效的,...

    读懂oracle sql执行计划

    Oracle SQL执行计划是指Oracle数据库为SQL语句制定的一系列执行...通过像MacleanLiu这样经验丰富的专家的指导,参与者可以更有效地学习和掌握Oracle SQL执行计划的解读和应用,从而提升自己的Oracle数据库管理能力。

    oracle执行调度百度

    1. "oracle执行计划解释.doc":这很可能是一份关于Oracle执行计划的文档。执行计划是Oracle处理SQL查询的详细步骤,它决定了数据如何被检索、排序和返回。理解执行计划有助于优化SQL语句,提高查询性能。文档可能...

    绑定执行计划.txt

    描述提到:“对于Oracle执行计划不准,可采用绑定执行计划对其固定”。这里指出当Oracle的自动优化器生成的执行计划可能不是最优解时,可以手动进行干预,通过绑定执行计划的方式将某个已知较好的执行计划固定下来,...

    Oracle执行计划

    Oracle执行计划是数据库管理员和开发人员在优化SQL查询性能时不可或缺的一个工具。它揭示了Oracle数据库如何处理SQL语句,包括选择数据检索的最佳路径、如何排序、如何连接表以及使用哪些索引等。理解并能解读执行...

    SQL执行计划简单分析

    Oracle 数据库提供了多种方法来查看 SQL 语句的执行计划,例如使用 PL/SQL Developer、EM 或者 SQLPLUS 工具等。下面我们将使用 SQLPLUS 工具来分析 SQL 语句的执行计划。 使用 SQLPLUS 查看执行计划 -------------...

    解读ORACLE_AWR报告

    ### 解读ORACLE_AWR报告 #### 基本信息概览 ORACLE_AWR(Automatic Workload Repository)报告是Oracle数据库系统中的一个重要工具,它提供了数据库性能的深入洞察,帮助管理员诊断问题并优化系统性能。AWR报告...

    深入理解Oracle解释计划

    本文旨在详细介绍Oracle执行计划的基础概念、重要性及其查看方法,并通过一系列实用技巧帮助读者更好地解读与优化执行计划。 #### 二、理解执行计划 ##### 2.1 执行计划的重要性 执行计划是数据库管理系统为执行...

    如何解读oracle_statspack 报告

    综上所述,理解和解读Oracle StatsPack报告需要综合分析各个部分的信息,结合业务需求和数据库运行环境,才能有效地识别并解决性能问题。在实际工作中,定期生成和分析StatsPack报告是保持数据库高效运行的关键步骤...

    Oracle AWR报告 解读

    以下是关于Oracle AWR报告的详细知识点解读。 1. DBTime和Elapsed时间:DBTime是指数据库处理用户请求所花费的时间总和,而不包括Oracle后台进程消耗的时间。Elapsed时间指的是整个收集数据的时间跨度。DBTime与...

    Oracle查看SQL执行计划SQL性能分析.docx

    通过了解如何查看和解读Oracle SQL执行计划,可以更有效地优化查询性能。无论是通过autotrace、SQL命令还是第三方工具,掌握这些方法对于提高系统的整体响应时间和资源利用率都是至关重要的。此外,深入理解执行计划...

    ORACLE EXPLAIN PLAN的总结

    Oracle的Explain Plan是数据库管理员和开发人员用来分析SQL查询执行计划的重要工具。它能提供关于如何执行SQL语句的详细信息,包括哪些操作(如全表扫描、索引访问等)将被使用,以及这些操作的预计成本、时间及资源...

Global site tag (gtag.js) - Google Analytics