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

Oracle用EXPLAIN PLAN分析SQL语句的实例解析

 
阅读更多

OracleEXPLAIN PLAN分析SQL语句的方法是本文我们主要要介绍的内容,我们知道,EXPLAIN PLAN 是一个很好的分析SQL语句的工具,它甚至可以在不执行SQL的情况下分析语句。 通过分析,我们就可以知道ORACLE是怎么样连接表,使用什么方式扫描表(索引扫描或全表扫描)以及使用到的索引名称。

你需要按照从里到外,从上到下的次序解读分析的结果. EXPLAIN PLAN分析的结果是用缩进的格式排列的, 最内部的操作将被最先解读, 如果两个操作处于同一层中,带有最小操作号的将被首先执行。

NESTED LOOP是少数不按照上述规则处理的操作,正确的执行路径是检查对NESTED LOOP提供数据的操作,其中操作号最小的将被最先处理。

通过实践,感到还是用SQLPLUS中的SET TRACE 功能比较方便。

举例:

  1.  SQL> list   
  2.    1  SELECT *   
  3.    2  FROM dept, emp   
  4.    3* WHERE emp.deptno = dept.deptno   
  5. SQL> set autotrace traceonly /*traceonly 可以不显示执行结果*/   
  6. SQL> /   
  7. 14 rows selected.   
  8. Execution Plan   
  9. ----------------------------------------------------------   
  10.     0      SELECT STATEMENT Optimizer=CHOOSE   
  11.     1    0   NESTED LOOPS   
  12.     2    1     TABLE ACCESS (FULL) OF 'EMP'    
  13.     3    1     TABLE ACCESS (BY INDEX ROWID) OF 'DEPT'   
  14.     4    3       INDEX (UNIQUE SCAN) OF 'PK_DEPT' (UNIQUE)   
  15.      
  16. Statistics   
  17. ----------------------------------------------------------   
  18.            0  recursive calls   
  19.            2  db block gets   
  20.           30  consistent gets   
  21.            0  physical reads   
  22.            0  redo size   
  23.         2598  bytes sent via SQL*Net to client   
  24.          503  bytes received via SQL*Net from client   
  25.            2  SQL*Net roundtrips to/from client   
  26.            0  sorts (memory)   
  27.            0  sorts (disk)   
  28.           14  rows processed 

通过以上分析,可以得出实际的执行步骤是:

1.TABLE ACCESS (FULL) OF 'EMP' 

2.INDEX (UNIQUE SCAN) OF 'PK_DEPT' (UNIQUE)

3.TABLE ACCESS (BY INDEX ROWID) OF 'DEPT'

4.NESTED LOOPS (JOINING 1 AND 3)

注意:目前许多第三方的工具如TOAD和ORACLE本身提供的工具如OMS的SQL Analyze都提供了极其方便的EXPLAIN PLAN工具,也许喜欢图形化界面的朋友们可以选用它们。

关于Oracle用EXPLAIN PLAN分析SQL语句的知识就介绍到这里了,希望本次的介绍能够对您有所收获!

 

转自http://database.51cto.com/art/201108/284815.htm

分享到:
评论

相关推荐

    压测Oracle的SQL语句的性能情况

    在Oracle环境中,LR脚本可以用于执行SQL语句,分析响应时间、事务速率等关键性能指标。 "直连Oracle执行SQL进行压测"意味着测试者直接与数据库交互,不通过中间层如应用程序服务器,这能更准确地反映出数据库本身的...

    oracle常用监控SQL语句集合

    在Oracle数据库管理中,了解和掌握一些常用的监控SQL语句是至关重要的,这些语句能够帮助DBA(数据库管理员)实时了解数据库的运行状态、性能瓶颈以及资源使用情况。"oracle常用监控SQL语句集合"提供了这样的工具集...

    ORACLE DBA常用SQL语句

    在Oracle数据库管理(DBA)工作中,SQL语句扮演着至关重要的角色,它们是DBA进行数据查询、数据库维护和性能优化的主要工具。以下是一些ORACLE DBA常用的SQL语句,这些语句涵盖了数据库管理和优化的核心方面: 1. *...

    Oracle数据库设计中SQL语句优化研究.doc

    - **使用`EXPLAIN PLAN`**:生成SQL语句的执行计划,进一步分析和优化。 **2.2 共享SQL语句** 共享SQL语句能够显著提高数据库性能: - **利用SGA中的共享池**:第一次解析后,SQL语句会被缓存在SGA的共享池中。...

    oracle sql语句优化

    1. **优化器(Optimizer)**:优化器是Oracle数据库的核心组件,负责分析SQL语句并选择最佳的执行计划。它会根据不同的策略和数据访问方法来决定如何从表中获取数据。Oracle提供了两种优化模式:基于规则的优化器...

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

    这一步并不执行SQL语句,仅生成执行计划。 2. **SQL\*Plus AutoTrace功能**:除了显示执行计划,AutoTrace还提供执行过程中的统计信息,如逻辑读次数,这对于评估查询效率很有帮助。 3. **10046 Event**:通过设置`...

    构筑高速运行的SQL语句

    报告生成通常通过执行Oracle提供的脚本完成,例如`awrrpt.sql`用于生成整体数据库的报告,`awrrpti.sql`针对单个实例,而`awrsqrpt.sql`则专门分析单条SQL语句的性能。 #### SQL语句优化技巧 优化SQL语句是提升...

    ORACLE-SQL性能优化大全.pdf

    - **共享SQL区域**:Oracle会在内存的共享池中缓存已执行过的SQL语句,以便后续执行时可以直接使用而无需重新解析。 - **SQL语句处理的阶段**:包括解析、执行、归还等阶段。 - **共享游标**:多个SQL语句如果...

    基于Oracle数据库的SQL语句优化.pdf

    - 通过查询计划分析和调优来优化慢查询,利用Oracle的EXPLAIN PLAN查看执行路径。 总结来说,SQL语句的优化是一个综合考虑的过程,它需要综合考虑查询效率、数据的物理存储、数据更新操作的频率以及系统的整体性能...

    ORACLE__SQL语句教学.zip

    本教程将详细解释这些概念,并通过实例演示如何在Oracle环境中执行SQL语句,以帮助学习者掌握Oracle数据库管理和查询的技能。通过阅读和实践,您将能够熟练地在Oracle环境中进行数据操作和管理。

    ORACLE-SQL优化

    优化者可以通过EXPLAIN PLAN语句来获取SQL语句的执行计划,并使用DBMS_XPLAN等工具深入分析。 五、SQL语句优化的过程 SQL语句优化的过程包括定位问题语句、检查执行计划、分析优化器统计信息、检查相关表的记录数和...

    SQL优化实例讲解

    `Explain Plan`是Oracle数据库中用于分析查询执行计划的工具,它可以显示数据库如何执行特定的SQL语句。通过`Explain Plan`,DBA和开发人员可以检查查询的执行路径,包括是否使用了索引、扫描方式等,这对于理解查询...

    Oracle常用SQL语句复习

    这篇“Oracle常用SQL语句复习”涵盖了在Oracle环境中经常使用的一些核心SQL语句,这对于数据库管理员和开发人员来说至关重要。 1. **数据查询**:在Oracle中,`SELECT`语句是最基础的查询工具。例如,`SELECT ...

    SQL-Optimization.rar_oracle_sql优化

    1. 使用EXPLAIN PLAN分析查询:Oracle提供EXPLAIN PLAN工具,用于分析SQL执行计划,帮助找出潜在的性能瓶颈。 2.绑定变量:使用绑定变量可以减少硬解析,提高SQL执行效率。 3. 优化连接顺序:JOIN操作中,优化连接...

    ORACLE_SQL性能优化

    【ORACLE SQL性能优化】是关于提升ORACLE数据库中SQL语句执行效率的专题,旨在帮助开发者理解SQL执行过程,掌握ORACLE优化器的工作原理,以及如何分析和优化SQL执行计划。以下是该主题涵盖的关键知识点: 1. **优化...

    oracle常用sql语句

    ### Oracle常用SQL语句知识点详解 #### 一、查看表空间的名称及大小 通过以下SQL语句可以查询Oracle数据库中各个表空间的名称及其占用的空间大小(单位为MB): ```sql SQL> select t.tablespace_name, round(sum...

    oracle DBA 常用SQL语句.pdf

    ### Oracle DBA 常用SQL语句解析与应用 #### 一、管理表空间 在Oracle数据库管理中,了解并掌握如何查看表空间的信息至关重要。以下为两种常见查询: **1.1 查看表空间的名称及大小** ```sql SQL>select t....

    oracle精品实例,练习总结

    6. **性能调优**:Oracle提供了一系列工具,如Explain Plan、SQL Trace和TKPROF,用于分析和优化SQL语句。实例会演示如何识别和解决性能瓶颈。 7. **备份与恢复**:数据库的完整性和可用性是关键,Oracle提供了RMAN...

    Oralce数据库SQL语句优化技术分析

    “Oracle SQL语句优化技术分析.ppt”很可能是整个课程的总结,它会总结前面章节的要点,提供具体的SQL优化技巧和工具,比如使用EXPLAIN PLAN分析执行计划,通过绑定变量提升性能,或者利用Oracle的性能监控工具进行...

    DBA常用SQL语句

    这条SQL语句用于查询Oracle数据库中的所有表空间及其总大小。它通过`dba_tablespaces`和`dba_data_files`两个视图进行连接查询,计算每个表空间所占的空间。 **SQL语句**: ```sql SQL>select t.tablespace_name, ...

Global site tag (gtag.js) - Google Analytics