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优化工具之--EXPLAIN PLAN

ORACLE SQL优化工具之--EXPLAIN PLAN   ORACLE SQL优化工具系列之--EXPLAIN PLAN    对于oracle...

Oracle-SQL Explain Plan解读

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

Oracle 执行计划(Explain Plan) 说明

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

修改oracle数据库的名字

最近闲来无事,决定修改一下数据库的名字,记得曾经学过通过重建控制文件来修改数据库的名字,网上找了下也可以通过oracle自带的nid修改数据库的名字,不过这个方法有些麻烦,并且修改的数据库名字不能带“...

Oracle DB SQL 性能分析器

• 确定使用SQL 性能分析器的优点 • 描述SQL 性能分析器工作流阶段 • 使用SQL 性能分析器确定数据库更改所带来的性能改进 SQL 性能分析器:概览 • 11g 的新增功能 • 目...
  • rlhua
  • rlhua
  • 2013-11-14 16:41
  • 3345

启用sqlplus的explain功能,保存结果至文件,查看sql的执行计划

--ORACLE服务端的$ORACLE_HOME/sqlplus/admin/glogin.sql下,--这样每次用telnet窗口在服务端使用sqlplus--设置显示格式,sql执行的跟踪set ...

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

本文将继续上文讲解其他与效率相关的参数 explain所返回的其他参数key为使用的索引,而使用的索引又影响着连接类型type,它们共同决定了可能扫描行数rows 参数解析 (4)type ...

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

mysql explain用于分析sql 语句的执行及数据库索引的使用。本文将致力于帮助大家充分理解explain所返回的各项参数,从而使大家快速掌握explain用法技巧。如果你在看其他教程或视频后...

【MySql性能优化二】利用explain进行查询和分析sql语句

在mysql数据库中为我们提供了explain方法可以通过它来帮助我们分析我们的sql语句。 登录mysql后,具体使用如下这里的了例子都以上篇博客中安装的实例数据库sakila为例: explain...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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