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

 我来答
greystar_cn
2018-06-06 · 知道合伙人软件行家
greystar_cn
知道合伙人软件行家
采纳数:16407 获赞数:17260
本人主要从事.NET C#方向的技术开发工作,具有10多年的各类架构开发工作经验。

向TA提问 私信TA
展开全部

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' ));  

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式