首页 >数据库 >mysql教程 >Oracle 获取执行计划

Oracle 获取执行计划

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB原创
2016-06-07 17:25:491036浏览

当我们质疑一条SQL语句执行缓慢,进而尝试是否有改进可能性的时候。我们往往需要查看这条SQL语句对应的执行计划,那么在Oracle中

一. 背景介绍

当我们质疑一条SQL语句执行缓慢,进而尝试是否有改进可能性的时候。我们往往需要查看这条SQL语句对应的执行计划,那么在Oracle中如何获取执行计划是本文要介绍的内容。

二. 获取方法

oracle提供四种获取执行计划的方法:

1. 执行SQL语句explain plan,然后查询结果输出表(普遍方法)

2. 查询一张动态性能视图

3. 查询自动工作量库或者statspack表

4. 启动提供执行计划的跟踪功能(比如启动sql_trace)

三. SQL语句EXPLAIN PLAN(方法一)

这个命令是以一条SQL语句作为输入,得到这条SQL的执行计划,,并且将结果输出到计划表中。语法如下:

explain plan for select count(*) from user_objects  /*解析获取执行计划*/

select * from table (dbms_xplan.display) /*查询计划表显示执行计划*/

如果查看的是绑定变量SQL的执行计划,SQL必须是变量的形式,比如:

explain plan  for select * from emp where empno = :p_value.

但是,存在一个问题,由于命令explain plan不能使用绑定变量窥测,也就是explain plan显示的执行计划,可能不是真正的执行计划。也就是说,如果使用了绑定变量,那么explain plan生成的执行计划是不可靠的(当然,这是针对绝对可靠而言,其实已经很可靠了)

linux

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn