当前位置: 代码迷 >> Oracle管理 >> 如何看pl/sql执行计划
  详细解决方案

如何看pl/sql执行计划

热度:494   发布时间:2016-04-24 06:21:34.0
怎么看pl/sql执行计划
今天我们DBA 一看一条SQL的执行计划就发现了问题。PL/SQL做开发的时候,怎么看执行计划啊,能看出什么?



怎么看这个东西?

------解决方案--------------------
你开发工具比如PL/SQL developer 或者Toad之类的有按钮可以看执行计划,一般F5
主要看全表扫的和cost,或者执行计划走错了,hash_join等,比如你这里有很多table access full,一般需要加索引,大表where条件里的列一般需要有索引列。有些执行计划跟预期不太一致,可以加hint,analysis table等优化。
DBA一般是从动态性能视图V$sqlarea等里抓出来最消耗资源的sql。
深入理解的话建议看下oracle的官方的书:Performance Tuning Guide and Reference,
http://download.oracle.com/docs/cd/B10501_01/server.920/a96533.pdf
------解决方案--------------------
开发工具什么的一般都有的
------解决方案--------------------
SQL code
1.sqlplus设置参数 set atuotrace onSET AUTOTRACE OFF            --No AUTOTRACE report is generated. This is the default. SET AUTOTRACE ON EXPLAIN     --The AUTOTRACE report shows only the optimizer execution path. SET AUTOTRACE ON STATISTICS  --The AUTOTRACE report shows only the SQL statement execution statistics. SET AUTOTRACE ON             --The AUTOTRACE report includes both the optimizer execution path and the SQL statement execution statistics. SET AUTOTRACE TRACEONLY      --Like SET AUTOTRACE ON, but suppresses the printing of the user's query output, if any. If STATISTICS is enabled, query data is still fetched, but not printed. 然后执行语句在语句的结果后面会有执行计划。2.sqlplus使用DBMS_XPLAN包。详尽信息见10g官方文档B19306_01\B19306_01\appdev.102\b14258\d_xplan.htm#sthref9740例子:示例:SQL> EXPLAIN PLAN FOR  2  SELECT * FROM test;已解释。SQL> SET LINESIZE 130SQL> SET PAGESIZE 0SQL> SELECT * FROM table(DBMS_XPLAN.DISPLAY);Plan hash value: 1357081020--------------------------------------| Id  | Operation         | Name | Rows  | Bytes | Cost (%CPU)| Time     |--------------------------------------|   0 | SELECT STATEMENT  |      |    16 |    48 |     3   (0)| 00:00:01 ||   1 |  TABLE ACCESS FULL| TEST |    16 |    48 |     3   (0)| 00:00:01 |--------------------------------------已选择8行。3.plsql developer  在sql window 窗口写sql,然后按F5,则会出现执行计划窗口。
------解决方案--------------------
参照http://blog.csdn.net/java3344520/archive/2010/04/22/5515497.aspx