查看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

查看执行计划 oracle,查看Oracle执行计划的几种方法相关推荐

  1. oracle事务数统计,【学习笔记】Oracle数据库收集统计信息的两种方法介绍案例

    天萃荷净 分享一篇关于Oracle数据库收集统计信息的办法,Oracle DBMS_STATS与Oracle analyze使用方法案例 今天群里面讨论DBMS_STATS和analyze,这里进行了 ...

  2. Oracle 实现行转列的几种方法

    Oracle 实现行转列的几种方法 表数据 1 使用 decode 与聚合函数实现 2 使用 case when 与聚合函数实现 3 使用 pivot 函数 表数据 with students as( ...

  3. ubuntu查看python版本-切换Ubuntu默认python版本的两种方法

    你可以按照以下方法使用 ls 命令来查看你的系统中都有那些 Python 的二进制文件可供使用. 1 2 $ls /usr/bin/python* /usr/bin/python /usr/bin/p ...

  4. linux上使用strace查看C语言级别的php源码【一种方法】

    如果你希望看到C语言级别的php代码就需要使用strace 这个默认是安装了的,如果没有安装可以 #yum install strace 查看httpd进程 #ps auxw | grep httpd ...

  5. linux svn 查看忽略文件,SVN忽略文件或文件夹几种方法总结linux操作系统 -电脑资料...

    如果我们要实现SVN忽略文件或文件夹可以使用命令方式与图形界面下进行设置了,下面我来给大家把这两种方法都总结起来,希望对各位不同级别的运维朋友都会有帮助, 每个项目中的配置文件都有区别,在本地开发和线 ...

  6. oracle数据库导入dmp文件,两种方法

    开始的准备工作:前面的步骤都一样 一: 创建表空间: create tablespace root datafile 'D:\Oracle\dataSpace\root.dbf' (你自己的存放空间) ...

  7. oracle 10046详解,ORACLE TRACE 10046事件常见的几种方法

    下面是10046事件的几个等级分别表示什么意思 Level 0 Tracing is disabled. This is the same as setting SQL_TRACE = FALSE. ...

  8. linux机器名查看命令,Linux终端查找PC主机名的3种方法

    就像Internet协议地址或IP地址为您的设备提供标识一样,主机名是另一个可以识别设备的参数.这是一串人类可以理解的字符.与IP地址不同,PC的主机名易于 记忆和调用.在本文中,我们将告诉您如何使用 ...

  9. java oracle 批量更新_ORACLE批量更新三种方法比较

    在大型的数据库应用中,我们经常会有针对表与表之间的关键建进行字段更新,那么在这个时候,我们就不能写简单的update来实现更新操作,而要针对具体的数据量来进行批量的update,下面几个例子是常用的S ...

  10. oracle 解锁 账户_oracle用户解锁三种方法

    ORA-28000: the account is locked- 的解决办法 2009-11-11 18:51 ORA-28000: the account is locked 第一步:使用 PL/ ...

最新文章

  1. 高性能javascript 文件加载阻塞
  2. 抢椅子游戏java_游戏教案小班抢椅子
  3. Spring Bean的生命周期及接口回调
  4. CodeForces 1506C(暴力求最长连续子串) acm寒假集训日记21/12/31or22/1/1
  5. 微信公众号api关注接口php,微信公众平台接口开发入门示例
  6. hbase 协处理器 部署_hbase协处理器概念及知识点总结
  7. [洛谷1533] 可怜的狗狗
  8. SqlServer日期时间格式转换
  9. 【GPS模组】移远EC20 基于Arduino的GPS流速仪
  10. MSVCR71.dll is missing from your computer-(Window7 install sqldeveloper for oracle )
  11. 滤波器原理及其作用计算机网络,滤波器的原理与作用
  12. pacman安装ubuntu_pacman命令 – 软件包管理器
  13. Windows Live Writer插件开发
  14. iOS开发——openssl生成CSR (pkcs10) 请求证书
  15. 英雄传奇-1.专用浏览器问题
  16. python实现3d扫描_三维激光扫描建模仪(基于树莓派)
  17. Unity云渲染开源框架UnityRenderStreaming使用说明
  18. 电动车治理再度升级,多地将有“新变化”
  19. vue 绘制体温单与三测单组件 实现前端js打印
  20. 论文投稿指南——我的第一篇SCI是怎么发表的?

热门文章

  1. 日系PC厂商为问题希捷硬盘提供固件更新
  2. 2022年成都初级审计师考试测试题及答案
  3. PHP操控Excel视频教程
  4. 【ROM制作工具】线刷包转卡刷包制作教程
  5. 小米9 -MIUI12.5稳定版卡刷包与线刷包-V12.5.3.0.RFACNXM
  6. 驱动程序安装全攻略1
  7. php 网页对话框插件,JavaScript_jquery插件hiAlert实现网页对话框美化,厌烦了IE浏览器的警告窗,伴 - phpStudy...
  8. 计算机网络 故障处理,浅析计算机网络常见故障处理及维护方法
  9. 卷积神经网络原理简述
  10. Mac iOS Simulator录制Gif图