温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎么使用sql monitor获取更加详细的执行计划

发布时间:2021-11-10 09:48:40 来源:亿速云 阅读:234 作者:iii 栏目:关系型数据库

这篇文章主要讲解了“怎么使用sql monitor获取更加详细的执行计划”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用sql monitor获取更加详细的执行计划”吧!

在数据库上执行SQL语句,执行完毕或执行过程中可以通过如下语句查询到

     SQL_ID 。

select *  from  v$sql  

where  sql_text like  '%SELECT   BOOK.DESCRIPTION AS%'  

order by first_load_time  desc  ; 

(2). 在数据库上执行如下语句。 

select dbms_sqltune.report_sql_monitor(type=>'TEXT', sql_id=>'4t6jwa8nrg0dp',report_level=>'ALL') monitor_report from dual;

点击查询出来的"HUGECLOB"值,可以看到TEXT格式的详细执行计划(最好保存

为txt后以ultraEdit工具打开,看得比较清晰,这里不贴出来)。一般在SQL运行

后1-3分钟内可以取到结果,SQL执行超过一定时间后查询不出执行计划(已经被删除)。

注意:不是所有的SQL都会被monitor到,如果没有看到执行计划,可以在SQL中加入

      提示 /*+monitor*/ 强制对SQL进行监控。  

-------------------------------------------------------------------  

在Oracle 11g之前的版本,长时间运行的SQL可以通过监控v$session_longops来观察,当某

个操作执行时间超过6秒,就会被记录在v$session_longops中,通常可以监控到全表扫描、

全索引扫描、哈希联接、并行查询等操作;而在Oracle 11g中,当SQL并行执行时,会立即

被实时监控到,或者当SQL单进程运行时,如果消耗超过5秒的CPU或I/O时间,它也会被监

控到。监控数据被记录在v$sql_monitor视图中,也可以通过Oracle 11g新增的package 

DBMS_MONITOR来主动对SQL执行监控部署。

v$sql_monitor收集的信息每秒刷新一次,接近实时,当SQL执行完毕,信息并不会立即从

v$sql_monitor中删除,至少会保留1分钟,v$sql_plan_monitor视图中的执行计划信息

也是每秒更新一次,当SQL执行完毕,它们同样至少被保留1分钟。查看执行计划type有

多种: 

type=>'TEXT'

type=>'HTML'

type=>'ACTIVE'  

------------------------------------------------------------------- 

感谢各位的阅读,以上就是“怎么使用sql monitor获取更加详细的执行计划”的内容了,经过本文的学习后,相信大家对怎么使用sql monitor获取更加详细的执行计划这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI