基于oracle的应用系统很多性能问题,是由应用系统sql性能低劣引起的,所以,sql的性能优化很重要,分析与优化sql的性能我们一般通过查看该sql的执行计划,本文就如何看懂执行计划,以及如何通过分析执行计划对sql进行优化做相应说明。
一、什么是执行计划(explain plan)
执行计划:一条查询语句在oracle中的执行过程或访问路径的描述。
二、如何查看执行计划
1.set autotrace on
2.explain plan for sql语句;
select plan_table_output from table(dbms_xplan.display());
3.通过第3方工具,如plsql developer(f5查看执行计划)、toad等;
三、看懂执行计划
1.执行计划中字段解释
SQL>select*fromscott.empa,scott.empbwherea.empno=b.mgr;
已选择13行。
执行计划
----------------------------------------------------------
Planhashvalue:992080948
---------------------------------------------------------------------------------------
|Id|Operation|Name|Rows|Bytes|Cost(%CPU)|Time|
---------------------------------------------------------------------------------------
|0|SELECTSTATEMENT||13|988|6(17)|00:00:01|
|1|MERGEJOIN||13|988|6(17)|00:00:01|
|2|TABLEACCESSBYINDEXROWID|EMP|14|532|2(0)|00:00:01|
|3|INDEXFULLSCAN|PK_EMP|14||1(0)|00:00:01|
|*4|SORTJOIN||13|494|4(25)|00:00:01|
|*5|TABLEACCESSFULL|EMP|13|494|3(0)|00:00:01|
------------------------------------------------------------------------------------