oracle sql语句分析explain explan

原创 2011年01月21日 09:20:00

EXPLAIN PLAN 是一个很好的分析SQL 语句的工具,它甚至可以在不执行SQL 的情况下分

析语句. 通过分析,我们就可以知道ORACLE 是怎么样连接表,使用什么方式扫描表(索引扫描或全

表扫描)以及使用到的索引名称.

你需要按照从里到外,从上到下的次序解读分析的结果. EXPLAIN PLAN 分析的结果是用缩

进的格式排列的, 最内部的操作将被最先解读, 如果两个操作处于同一层中,带有最小操作号的将

被首先执行.

 

1,安装

 

sys用户执行创建脚本,脚本位于$ORACLE_HOME/rdbms/admin/utlxplan.sql。

 

执行的方法,cp $ORACLE_HOME/rdbms/admin/utlxplan.sql /home/utlxplan.sql

 

进入数据库中执行:@/home/utlxplan.sql

 

执行完之后,数据库中会有个plan的表,用来存储分析的信息。

 

 

2,使用

 

语法

explain PLAN [ SET STATEMENT_ID [=] < string literal > ] [ INTO < table_name > ]

FOR < sql_statement >

 

其中:

STATEMENT_ID:是一个唯一的字符串,把当前执行计划与存储在同一PLAN中的其它执行计划区别开来。
TABLE_NAME:是plan表名,它结构如前所示,你可以任意设定这个名称。
SQL_STATEMENT:是真正的要分析的SQL语句

例如:

 

explain plan set statement_id='T_TEST' for select * from t

 

分析:

SQL>SELECT A.OPERATION,OPTIONS,OBJECT_NAME,OBJECT_TYPE,ID,PARENT_ID

   2  FROM PLAN_TABLE  a
  3  WHERE STATEMENT_ID='T_TEST'
  4  ORDER BY Id;

 

grant all on plan_table to public;#授权所有用户 

 

为了在sql*plus中使用autotrace。需要执行一下操作:

要在数据库中建立一个角色plustrace,sys用户运行脚本plustrce.sql来创建这个角色,这个脚本在目录 UNIX:$ORACLE_HOME/sqlplus/admin, Windows:%ORACLE_HOME%/sqlplus/admin)中;

方法通ultxplain.sql一样。

授权:将plustrace的权限授予需要autotrace的用户

grant plustruce to public;

 

启动关闭autotrace:

set autotrace on/off;

 

只显示执行计划

set autotrace on explain;

 

只显示统计信息:

set autotrace on statistics;

 

显示执行计划,屏蔽执行结果;

set autotrace on traceonly;

 

仅仅显示执行计划,屏蔽执行结果:

set autotrace on traceonly explain;

 

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

Oracle sql执行计划解析

Oracle优化器 Oracle的优化器共有3种模式:RULE (基于规则)、COST(基于成本)、CHOOSE(基于选择)。 设置缺省的优化器的方法,是在启动参数文件中针对OPTIMIZER_ MO...

【ORACLE】分析oracle会话及性能语句23条

--库缓存命中率 selectsum(pins)/(sum(pins)+sum(reloads))*100 "hit ratio" from v$librarycache; --数据字典命...

Oracle-SQL Explain Plan解读

概述执行计划:一条查询语句在ORACLE中的执行过程或访问路径的描述。 基于ORACLE的应用系统很多性能问题,是由应用系统SQL性能低劣引起的,所以,SQL的性能优化很重要,分析与优化SQL的性能我...

ORACLE EXPLAIN PLAN的总结 (优化SQL语句)

ORACLE EXPLAIN PLAN的总结 文章分类:数据库 在ORACLE数据库中,需要对SQL语句进行优化的话需要知道其执行计划,从而针对性的进行调整.ORACLE的执行计划的获得有几种方法...

Oracle 执行计划(Explain Plan) 说明

如果要分析某条SQL的性能问题,通常我们要先看SQL的执行计划,看看SQL的每一步执行是否存在问题。如果一条SQL平时执行的好好的,却有一天突然性能很差,如果排除了系统资源和阻塞的原因,那么基本可以断...

Oracle中SQL语句运行过程的深度解析

最近项目做完了(也许并不能说做完了),但是出现了一个致命的障碍,就是性能。现在想想TOP的作者是讲的是多么的精辟,性能是贯穿在项目需求,项目分析设计,项目编码和单元测试、集成等各个阶段。而不是等项目开...

Oracle EXPLAIN PLAN用法

使用EXPLAIN PLAN语句来确定Oracle数据库下指定SQL语句的执行计划,这个语句插入每一步执行计划的行描述到指定表中。你也可使用EXPLAIN PLAN语句作为SQL跟踪工具的一部分。 ...

Oracle SQL性能检测分析

1. 概要:之前在网站性能优化实践-for循环中的数据库操作和网站性能优化实践-数据库分页和轻量级Session都提到了数据库操作在网站性能优化中的重要作用,对于mysql数据库,在使用mysql的e...
  • zhoen
  • zhoen
  • 2010年06月25日 12:36
  • 5245

ORACLE SQL优化工具之--EXPLAIN PLAN

ORACLE SQL优化工具之--EXPLAIN PLAN   ORACLE SQL优化工具系列之--EXPLAIN PLAN    对于oracle...
  • haiross
  • haiross
  • 2013年12月05日 15:42
  • 9898

MySQL 使用explain分析sql语句的查询效率(一)

mysql explain用于分析sql 语句的执行及数据库索引的使用。本文将致力于帮助大家充分理解explain所返回的各项参数,从而使大家快速掌握explain用法技巧。如果你在看其他教程或视频后...
  • JathamJ
  • JathamJ
  • 2016年12月28日 16:24
  • 3428
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:oracle sql语句分析explain explan
举报原因:
原因补充:

(最多只允许输入30个字)