SQL调优之⼀:获取执⾏计划的N种⽅式
1, EXPLAIN PLAN
example:
EXPLAIN PLAN
FOR
SELECT last_name FROM employees;
set long 99999
set line 200 pages 300
select * from table(dbms_xplan.display());
特点:
explain plan不⽀持date绑定变量的数据类型隐式转换
当有绑定变量的时候,explain plan 不⼀定代表真实的执⾏计划
explain plan的结果都只是估算,并不是真正执⾏的结果
2,SQL_TRACE
example:
需要使⽤TKPROF⼯具对trace⽂件进⾏格式化,可以使⽤DBMS_SESSION or DBMS_MONITOR来替代使⽤这个参数,更加灵活,不过⼀般不需要,alter session,然后在当前session运⾏命令即可。
特点:
真实执⾏计划
可以获得绑定变量值
可以获得详细的执⾏统计信息
3,10053事件
example:
alter session set events '10053 trace name context forever, level 1';
SELECT last_name FROM employees;
alter session set events '10053 trace name context off';
特点:
真实执⾏计划
⽤来查看优化器的成本计算过程
4, AUTOTRACE
example:
sql优化的几种方式SET AUTOTRACE OFF ---------------- 不⽣成AUTOTRACE 报告,这是缺省模式
SET AUTOTRACE ON EXPLAIN ------ AUTOTRACE只显⽰优化器执⾏路径报告
SET AUTOTRACE ON STATISTICS -- 只显⽰执⾏统计信息
SET AUTOTRACE ON ----------------- 包含执⾏计划和统计信息
SET AUTOTRACE TRACEONLY ------ 同set autotrace on,但是不显⽰查询输出
特点:
可以选择显⽰执⾏统计信息
可以选择显⽰输出
真实执⾏计划,相当于执⾏SQL后⾃动从plan table获取执⾏计划
5,DBMS_XPLAN
example:
真实计划:
select * from table(dbms_xplan.display_cursor('sql_id',null,'ALLSTATS LAST));历史计划:
select * from table(dbms_xplan.display_awr('sql_id','plan_hash_value'));
6,其他
awrsqrpt
sqlt
sqlhc
pl/sql
sql developer
toad等

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。