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生成的执行计划是不可靠的(当然,这是针对绝对可靠而言,其实已经很可靠了)
相关推荐
娜娜 2020-07-18
talkingDB 2020-07-05
zhangchaoming 2020-06-21
lklong 2020-11-22
oraclemch 2020-11-06
shilukun 2020-10-10
周嘉笙 2020-11-09
iilegend 2020-10-19
EricRay 2020-10-16
zhuzhufxz 2020-09-16
dataminer 2020-08-17
bfcady 2020-08-16
Hody 2020-08-16
FightFourEggs 2020-08-16
数据库设计 2020-08-16
Seandba 2020-08-16
Omega 2020-08-16
zjyzz 2020-08-16