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

50次阅读
没有评论

共计 1310 个字符,预计需要花费 4 分钟才能阅读完成。

这篇文章主要讲解了“怎么使用 sql monitor 获取更加详细的执行计划”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着丸趣 TV 小编的思路慢慢深入,一起来研究和学习“怎么使用 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 获取更加详细的执行计划这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是丸趣 TV,丸趣 TV 小编将为大家推送更多相关知识点的文章,欢迎关注!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-24发表,共计1310字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)