oracle 查询执行慢的sql,使用V$SESSION_LONGOPS分析

发布时间:2020-03-26 21:52:26 作者:guochao198975
来源:网络 阅读:1839
/*
OPNAME:指长时间执行的操作名.如:Table Scan
TARGET:被操作的object_name. 如:tableA 
TARGET_DESC:描述target的内容 
SOFAR:这个是需要着重去关注的,表示已要完成的工作数,如扫描了多少个块。
TOTALWORK:指目标对象一共有多少数量(预计)。如块的数量。
UNITS: 
START_TIME:进程的开始时间
LAST_UPDATE_TIM:最后一次调用set_session_longops的时间
TIME_REMAINING: 估计还需要多少时间完成,单位为秒
ELAPSED_SECONDS:指从开始操作时间到最后更新时间
CONTEXT:
MESSAGE:对于操作的完整描述,包括进度和操作内容。 
USERNAME:与v$session中的一样。
SQL_ADDRESS:关联v$sql
SQL_HASH_VALUE:关联v$sql
QCSID:主要是并行查询一起使用。
*/

SELECT V.SQL_ID,
       USERNAME,
       SID,
       OPNAME,
       ROUND(SOFAR * 100 / TOTALWORK, 0) || '%' AS "执行进度百分比",
       TIME_REMAINING "估计剩余时间(秒)",
       SQL_TEXT,
       A.ELAPSED_SECONDS "执行时间(秒)",
       A.START_TIME "执行开始时间",
       A.TOTALWORK "总数(块block)",
       A.SOFAR "已完成数(块block)",
       A.SOFAR / A.ELAPSED_SECONDS "每秒扫描数(块block)"
  FROM V$SESSION_LONGOPS A, V$SQL V
 WHERE 1 = 1
      --AND TIME_REMAINING <> 0
   AND SQL_ADDRESS = ADDRESS
   AND SQL_HASH_VALUE = HASH_VALUE
 ORDER BY A.ELAPSED_SECONDS DESC;

 SELECT DBMS_SQLTUNE.REPORT_SQL_MONITOR(

                                       SQL_ID => '85tpcyjsu9mx6', 

                                       REPORT_LEVEL => 'ALL') AS REPORT

  FROM DUAL;
推荐阅读:
  1. Oracle启动停止规范
  2. oracle logminer探索

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

oracle ops

上一篇:关于Android中res等几种文件通过InputStream方式读入工程中

下一篇:APUE读书笔记-12线程控制-05可重入性

相关阅读

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

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