`

ORACLE执行计划学习

 
阅读更多
   基于ORACLE的应用系统很多性能问题,是由应用系统SQL性能低劣引起的,所以SQL的性能优化很重要,分析与优化SQL的性能我们一般通过查看该SQL的执行计划,本文就如何看懂执行计划,以及如何通过分析执行计划对SQL进行优化做相应说明。
   这个执行计划是怎么得到的?既然是计划,那么绝对不是把这个语句先执行一遍,然后把这个计算出来,那样的话这个执行计划就成了事后诸葛亮了。这个执行计划是oracle根据统计信息得到的。执行计划的准确性(主要指数据返回,数据量大小)由统计信息的准确性决定。
ANALYZE TABLE TEST COMPUTE STATISTICS;--查看表的统计信息

   执行计划是一条查询语句在ORACLE中的执行过程或访问路径的描述。
   查看执行计划语句:
EXPLAIN PLAN FOR SELECT * FROM SCOTT.EMP; --要解析的SQL脚本
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY); --查看执行计划

   看懂执行计划:
执行顺序的原则是:由上至下,从右向左(Operator缩进位置)
由上至下:在执行计划中一般含有多个节点,相同级别(或并列)的节点,靠上的优先执行,靠下的后执行。
从右向左:在某个节点下还存在多个子节点,先从最靠右的子节点开始执行。

根据执行顺序我们知道执行顺序是id为 4 2 3 1 0 的顺序执行的。
  具体内容查看:
1.Plan hash Value:
这一行是这一条语句的的hash值,我们知道ORACLE对每一条SQL语句产生的执行计划放在SHARE POOL里面,第一次要经过硬解析,产生hash值。下次再执行时比较hash值,如果相同就不会执行硬解析。
2.对上面执行计划列字段的解释:
Id: 执行序列,但不是执行的先后顺序。执行的先后根据Operation缩进来判断(采用最右最上最先执行的原则看层次关系,在同一级如果某个动作没有子ID就最先执行。一般按缩进长度来判断,缩进最大的最先执行,如果有2行缩进一样,那么就先执行上面的。)
Operation:当前操作的内容。
Name:操作对象
Rows:也就是10g版本以前的Cardinality(基数),Oracle估计当前操作的返回结果集行数。
Bytes:表示执行该步骤后返回的字节数。
Cost(CPU):表示执行到该步骤的一个执行成本,用于说明SQL执行的代价。
Time:Oracle 估计当前操作的时间。 
3.谓词说明:
Predicate Information (identified by operation id):
---------------------------------------------------
2 - filter("B"."MGR" IS NOT NULL)
4 - access("A"."EMPNO" = "B"."MGR")
Access: 表示这个谓词条件的值将会影响数据的访问路劲(全表扫描还是索引)。
Filter:表示谓词条件的值不会影响数据的访问路劲,只起过滤的作用。
在谓词中主要注意access,要考虑谓词的条件,使用的访问路径是否正确。

关于Autotrace几个常用选项的说明:
SET AUTOTRACE OFF ---------------- 不生成AUTOTRACE 报告,这是缺省模式
SET AUTOTRACE ON EXPLAIN ------ AUTOTRACE只显示优化器执行路径报告
SET AUTOTRACE ON STATISTICS -- 只显示执行统计信息
SET AUTOTRACE ON ----------------- 包含执行计划和统计信息
SET AUTOTRACE TRACEONLY ------ 同set autotrace on,但是不显示查询输出
  • 大小: 53.9 KB
  • 大小: 120.2 KB
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    oracle执行计划详解

    Oracle 执行计划是数据库性能调整的关键部分,对于想要学习 Oracle 数据库的朋友非常有帮助。下面是Oracle 执行计划的背景知识和重要概念。 共享 SQL 语句 Oracle 将 SQL 语句及解析后得到的执行计划存放在内存中...

    Oracle 执行计划、表分区

    本文将深入探讨Oracle的执行计划和表分区两个重要概念,以及它们如何影响数据库性能。 执行计划是Oracle数据库处理SQL查询的一种步骤序列,它详细描述了数据如何从表中提取、如何进行排序或聚合,以及如何返回到...

    Oracle 执行计划

    Oracle执行计划是数据库执行SQL语句前确定的操作步骤序列。优化器根据表的统计信息、存储参数、可用的执行路径等生成执行计划,以实现最快的查询速度。执行计划通常用一系列数据库操作符来表示,这些操作符及其顺序...

    读懂oracle sql执行计划

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

    oracle执行调度百度

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

    ORACLE的执行计划

    详细介绍了oracle执行计划,对于初步了解和深入学习都是非常好的文档。。。

    oracle存储过程学习经典入门

    Oracle 存储过程学习经典入门 Oracle 存储过程学习目录是 Oracle 存储过程学习的基础知识,了解 Oracle 存储过程的基本语法、基础知识和一些常见问题的解决方法是非常重要的。本文将从 Oracle 存储过程的基础知识...

    ORACLE的执行计划稳定性.pdf

    本文将深入探讨Oracle执行计划的稳定性及其对SQL性能的影响。 首先,执行计划是由Oracle优化器生成的。优化器的主要任务是分析可能的执行路径,并根据预估的成本选择最优的执行策略。Oracle提供了两种主要的优化器...

    oracle 10G学习完全图解

    以及数据库性能调优,如分析SQL执行计划、调整数据库参数、优化索引策略等。 总的来说,《Oracle 10G学习完全图解》是一份全面的Oracle学习资料,不仅提供了清晰的安装流程,还强调了实战操作和问题解决。无论你是...

    ORACLE存储过程学习源码

    Oracle存储过程是数据库编程的重要组成部分,它允许程序员在数据库中执行复杂的业务逻辑和数据操作。这个"ORACLE存储过程学习源码"集合包含了从基础到高级的30个示例,是学习和掌握Oracle存储过程的理想资源。下面,...

    oracle的索引学习

    本篇文章将深入探讨Oracle索引的学习,重点关注索引的原理、类型、优缺点以及如何使用和分析执行计划。 首先,理解索引的基本概念。索引是一种特殊的数据结构,它存储在表空间中,用于加速对表数据的访问。当执行...

    Oracle数据库 资料学习

    8. **性能优化**:了解如何使用 Explain Plan 分析查询执行计划,学习SQL优化器的工作原理,以及如何通过索引、分区、统计信息等方式提升查询性能。 9. **数据库设计**:学习关系数据库设计的基本原则,如范式理论...

    Oracle学习笔记 PDF

    ### Oracle学习笔记知识点详解 #### 一、Oracle简介 Oracle是一家知名的软件公司,以其数据库管理系统闻名全球。该公司成立于1977年,总部位于美国加利福尼亚州。Oracle不仅提供数据库解决方案,还涉及中间件、...

    oracle sql语句学习

    2. Explain Plan:分析SQL执行计划,找出性能瓶颈。 3. SQL优化器:Oracle内置的工具,自动选择最佳执行路径。 4. 绑定变量:减少硬解析,提高执行效率。 5. 分区策略:根据业务需求选择合适的分区策略,提升查询...

    oracle学习

    ### Oracle学习知识点总结 #### 一、Oracle密码管理与解锁 **知识点1:忘记Oracle用户密码的处理方式** - **场景描述**:当忘记Oracle数据库中的某个用户(例如`scott`)的密码时,可以通过拥有更高权限的账户...

    Oracle 10g 学习课件

    Oracle 10g 学习课件是一套全面的教程,专为想要深入理解Oracle数据库管理系统的人们设计。Oracle数据库是全球广泛使用的大型企业级数据库系统,尤其在金融、电信和政府等行业中占据主导地位。Oracle 10g是其第十个...

    Oracle11g学习笔记

    学习如何编写JDBC代码,执行SQL语句,处理结果集,以及事务管理,是Java开发者必备的技能。 最后,性能调优是Oracle11g学习的高级阶段。这包括SQL查询优化、数据库架构优化、内存管理优化等,需要借助于各种诊断...

    oracle 10g学习资料

    10. **性能优化**:学习SQL优化,如使用EXPLAIN PLAN分析查询执行计划,以及通过调整表分区、索引和统计信息来提高查询性能。 11. **数据库设计**:掌握数据库设计原则,如范式理论(第一范式到第五范式),以及...

    oracle 数据库的学习资料, sql语句的详细学习资料

    文档可能还会介绍Oracle的SQL优化器,如CBO(Cost-Based Optimizer)的工作原理,以及如何通过SQL Profiles和SQL Plan Baselines来稳定高效的执行计划。 其他如“9.pdf”、“3.pdf”、“4.pdf”等文件,很可能是对...

    ORACLE数据库学习笔记

    本文主要针对ORACLE数据库的学习笔记进行深入解析。 首先,SQL是Structured Query Language的缩写,即结构化查询语言,它是用于管理关系数据库的标准语言。SQL主要包括五种类型的子语言:DDL(Data Definition ...

Global site tag (gtag.js) - Google Analytics