易截截图软件、单文件、免安装、纯绿色、仅160KB

查看Oracle执行计划的几种方法

查看Oracle执行计划的几种方法
一、通过PL/SQL Dev工具
    1、直接File->New->Explain Plan Window,在窗口中执行sql可以查看计划结果。其中,Cost表示cpu的消耗,单位为n%,Cardinality表示执行的行数,等价Rows。
    2、先执行 EXPLAIN PLAN FOR   select * from tableA where paraA=1,再 select * from table(DBMS_XPLAN.DISPLAY)便可以看到oracle的执行计划了,看到的结果和1中的一样,所以使用工具的时候推荐使用1方法。
注意:PL/SQL Dev工具的Command window中不支持set autotrance on的命令。还有使用工具方法查看计划看到的信息不全,有些时候我们需要sqlplus的支持。
 
二、通过sqlplus
1.最简单的办法
Sql> set autotrace on
Sql> select * from dual;
  执行完语句后,会显示explain plan 与 统计信息。
  这个语句的优点就是它的缺点,这样在用该方法查看执行时间较长的sql语句时,需要等待该语句执行成功后,才返回执行计划,使优化的周期大大增长。如果不想执行语句而只是想得到执行计划可以采用:
Sql> set autotrace traceonly
这样,就只会列出执行计划,而不会真正的执行语句,大大减少了优化时间。虽然也列出了统计信息,但是因为没有执行语句,所以该统计信息没有用处,如果执行该语句时遇到错误,解决方法为:
(1)在要分析的用户下:
Sqlplus > @ ?
dbmsadminutlxplan.sql
(2) 用sys用户登陆
Sqlplus > @ ?sqlplusadminplustrce.sql
Sqlplus > grant plustrace to user_name;
- - user_name是上面所说的分析用户
 
 2.用explain plan命令
(1) sqlplus > explain plan for select * from testdb.myuser
(2) sqlplus > select * from table(dbms_xplan.display);
  上面这2种方法只能为在本会话中正在运行的语句产生执行计划,即我们需要已经知道了哪条语句运行的效率很差,我们是有目的只对这条SQL语句去优化。其实,在很多情况下,我们只会听一个客户抱怨说现在系统运行很慢,而我们不知道是哪个SQL引起的。此时有许多现成的语句可以找出耗费资源比较多的语句,如:
SELECT ADDRESS, substr(SQL_TEXT,1,20) Text, buffer_gets, executions,
buffer_gets/executions AVG  from  v$sqlarea
WHERE executions>0 AND buffer_gets > 100000   ORDER BY 5;
ADDRESS  &n


相关文档:

windows 启动 oracle 批处理脚本

 Oracle安装后,会把4个服务设为自动启动,分别为:
1. OracleOraHome90Agent
2. OracleOraHome90HTTPServer
3. OracleOraHome90TNSListener
4. OracleServiceORA
         其中第二个不是必须的,可以在服务里把它禁用。其他三个在Oracle运行时都要启动。
   ......

Oracle & SUN,严峻的挑战(一)

      今天参加了Oracle & SUN合并后第一次与合作伙伴及客户的通气会。整个会议给我的感觉是:Oracle雄心勃勃,SUN意气风发,而我自己,心怀惴惴。       Oracle有了SUN,那么从硬件到软件Oracle的产品线就十分齐备了。Oracle半年前推出11gR2 for linux,接着for solar ......

优化select count(*) (转oracle培训老师的文章)


select count(*) from t1;
这句话比较简单,但很有玄机!对这句话运行的理解,反映了你对数据库的理解深度!
建立实验的大表他t1
SQL> conn scott/tiger
已连接。
SQL> drop table t1 purge;
表已删除。
SQL> create table t1 as select * from emp where 0=9;
表已创建。
SQL> insert into t1 sele ......

一个programmer关于Oracle SQL的学习小结与思考

http://www.javaeye.com/topic/366991#
作为一个开发人员,开始认真系统学习
Oracle SQL也只有月余,之前的
SQL知
识仅仅是项目里面用到什么就去看什么,简单说就是
Read The Fxxking Guide。在系统学习
Oracle
SQL之前,俺的想法就是“按照需求完成功能,剩下的交给
DBA来处理”。这个想法从整体来看显 ......

如何开发ORACLE存储过程

在我的上一个银行项目中,我接到编写ORACLE存储过程的任务,我是程序员,脑袋里只有一些如何使用CALLABLE接口调用存储过程的经验,一时不知如何下手,我查阅了一些资料,通过实践发现编写ORACLE存储过程是非常不容易的工作,即使上路以后,调试和验证非常麻烦。简单地讲,Oracle存储过程就是存储在Oracle数据库中的一个程序 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号