oracle执行计划怎么看,oracle的执行计划怎么看

Oracle如何查看SQL实际执行计划

1、 查看最近执行的SQL语句

专注于为中小企业提供网站设计制作、网站设计服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业常宁免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了数千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

select /*recentsql*/s.SQL_ID,s.CHILD_NUMBER,s.HASH_VALUE,s.ADDRESS,s.EXECUTIONS,s.SQL_TEXT

from v$sql s

where s.PARSING_USER_ID = (

select u.user_id from all_users u

where u.username = 'YH_TEST'

) and s.COMMAND_TYPE in (2 ,3, 6,7 ,189)

and upper(s.SQL_TEXT) not like upper( '%recentsql%')

2、使用dbms_xplan.display_cursor查看执行计划,它的用法见笔记 《dbms_xplan.display_cursor的用法》,

注意了:若dbms_xplan.display_cursor要以ALLSTATS LAST格式输出的话,/*+gather_plan_statistics*/这个提示信息放到查询语句中是必须的。

select /*+gather_plan_statistics*/ /*plan_statistics1*/ name ,salary from test where name = 't1' ;

select s.SQL_ID,s.CHILD_NUMBER,s.HASH_VALUE,s.ADDRESS,s.EXECUTIONS,s.SQL_TEXT

from v$sql s

where upper(s.SQL_TEXT) like upper('%plan_statistics1%' )

and upper(s.SQL_TEXT) not like upper( '%v$sql%');

select * from table (dbms_xplan.display_cursor('4wktu80k1xy5k' , 0, 'ALLSTATS LAST cost' ));

oracle pl/sql 执行计划怎么看

打开PL/SQL Developer软件,请确保plsql能够成功连接到一个oracle数据库。

在PL/SQL Developer中写好一段SQL代码,按F5,或者点击“执行执行计划”图标,PL/SQL Developer会自动打开执行计划窗口,显示该SQL的执行计划。

可以看到窗口上方是sql语句,下方显示执行计划表格。表格的列主要包含描述、用户、对象、成本花费、IO开销等,表格,当然表格列还可以自定义。表格的行包含了查询逻辑的执行顺序和各个步骤信息。

执行计划表格内容的执行顺序是:按照从左至右,从上至下的步骤执行,具体是指执行计划按照层次逐步缩进,从左至右看,缩进最多的那一步最先执行,如果缩进量相同,则按照从上而下的方法判断执行顺序。

通过查看执行计划表格的cost列,即成本花费能够知道哪个步骤花费的成本高,通过查看执行计划表格的行中的objectname列,能够知道是否使用到表中的索引。

oracle怎么查看sql执行计划

一般需要借助第三方工具来查看执行计划。

工具:PL/SQL

步骤:

1、打开第三方工具PL/SQL,并登录到指定数据库。

2、新建一个查询,编写SQL语句。

3、此时不要执行该语句,而是按电脑上的F5键,部分笔记本键盘需要同时按FN和F5键。

4、然后就能看到执行计划了。

如何看懂ORACLE执行计划

打开Oracle Database软件后进入软件数据库主界面,在PL/SQL下按F5查看执行计划,在这里面可以看到基数、优化器、耗费等基本信息 如图

2

在SQL*PLUS,PL/SQL的命令窗口下执行下面步骤 :

SQLEXPLAIN PLAN FOR

SELECT * FROM SCOTT.EMP; --要解析的SQL脚本

SQLSELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);

如图

完成以上步骤后还需要在SQL*PLUS下输入代码执行命令:

SQLSET TIMING ON --控制显示执行时间统计数据 SQLSET AUTOTRACE ON EXPLAIN   --这样设置包含执行计划、脚本数据输出,没有统计信息

如图

接着我们输入第二段代码:

SQL执行需要查看执行计划的SQL语句 SQLSET AUTOTRACE OFF   --不生成AUTOTRACE报告,这是缺省模式

然后是第三段

SQL SET AUTOTRACE ON   --这样设置包含执行计划、统计信息、以及脚本数据输出 SQL执行需要查看执行计划的SQL语句 SQLSET AUTOTRACE OFF

第四段代码:

SQL SET AUTOTRACE TRACEONLY  --这样设置会有执行计划、统计信息,不会有脚本数据输出

最后输入第5段代码:

SQL执行需要查看执行计划的SQL语句 SQLSET AUTOTRACE TRACEONLY STAT --这样设置只包含有统计信息 SQL执行需要查看执行计划的SQL语句

需要注意的是:在Oracle Database中,PL/SQL Developer 工具并不完全支持所有的SQL*Plus命令,如果执行“SET AUTOTRACE ON”命令就会报错,出现接下来的情况:

SQL SET AUTOTRACE ON;

Cannot SET AUTOTRAC

PL/SQL DEVELOPER工具里面执行上面脚本过后,我们是看不到相关信息的,这时我们可以通过输入脚本代码查询执行过的信息,代码如下:

SELECT T.VALUE || '/' || LOWER(RTRIM(I.INSTANCE, CHR(0))) || '_ora_' || P.SPID || '.trc' TRACE_FILE_NAME FROM ( SELECT P.SPID FROM V$MYSTAT M, V$SESSION S, V$PROCESS P WHERE M.STATISTIC# =1 AND S.SID = M.SID AND P.ADDR = S.PADDR ) P, ( SELECT T.INSTANCE FROM V$THREAD T, V$PARAMETER V WHERE V.NAME ='thread' AND (V.VALUE = 0 OR T.THREAD# = TO_NUMBER(V.VALUE)) ) I, (SELECT VALUE FROM V$PARAMETER WHERE NAME='user_dump_dest') T

如图所示:

我们通过Oracle Database,查看执行计划后,通常要以文本的形式保存下来,可以输入命令:tkprof D:\ORACLE\PRODUCT\10.2.0\DB_1\RDBMS\TRACE/wgods_ora_3940.trc h:\out.txtoutputfile explain=etl/etl 执行 如图

执行上面命令后,就可以查看生成的文本文件了如图

以上就是如何用Oracle Database,查看执行计划的步骤,需要注意的是PL/SQL Developer 工具并不完全支持所有的SQL*Plus命令,执行SET AUTOTRACE ON 就如此,在PL/SQL Developer工具下执行此命令会报错。


分享名称:oracle执行计划怎么看,oracle的执行计划怎么看
标题路径:http://pwwzsj.com/article/heohse.html