zoukankan      html  css  js  c++  java
  • Oracle-估算运行时间长的耗时操作语句

    SELECT INST_ID,
    	USERNAME,
    	SID,
    	SERIAL#,
    	OPNAME,
    	ROUND(SOFAR * 100 / TOTALWORK, 0) || '%' AS PROGRESS,
    	SOFAR,
    	TOTALWORK,
    	TIME_REMAINING,
    	SQL_ID
      FROM GV$SESSION_LONGOPS
     WHERE TIME_REMAINING <> 0
    ;
    
    SELECT  SID,  decode(totalwork, 0, 0, round(100 * sofar/totalwork, 2)) "Percent", message "Message", start_time, 
    elapsed_seconds, time_remaining , inst_id 
    from GV$Session_longops t 
    where t.TARGET='XXX' and t.sid = 88
     order by t.start_time desc;
    

    V$SESSION_LONGOPS视图记录了执行时间长于6秒的某个操作(可能是备份,恢复,收集统计信息,Hash Join,Sort ,Nested loop,Table Scan, Index Scan 等等),通常使用该视图用来分析SQL运行缓慢的原因,可以配合V$SESSION视图。

    注意:必须满足以下2个条件

    1. 必须将初始化参数 timed_statistics 设置为true或者开启sql_trace
    2. 必须用ANALYZE或者DBMS_STATS对对象收集过统计信息

    视图字段说明:

    字段 说明
    SID Session标识
    SERIAL# Session串号
    OPNAME 操作简要说明
    TARGET 操作运行所在的对象
    TARGET_DESC 目标对象说明
    SOFAR 至今为止完成的工作量
    TOTALWORK 总工作量
    UNITS 工作量单位
    START_TIME 操作开始时间
    LAST_UPDATE_TIME 统计项最后更新时间
    TIMESTAMP 操作的时间戳
    TIME_REMAINING 预计完成操作的剩余时间(秒)
    ELAPSED_SECONDS 从操作开始总花费时间(秒)
    CONTEXT 前后关系
    MESSAGE 统计项的完整描述
    USERNAME 执行操作的用户ID
    SQL_ADDRESS 关联v$sql
    SQL_HASH_VALUE 关联v$sql
    SQL_ID 关联v$sql
    QCSID 主要是并行查询一起使用
  • 相关阅读:
    ACwing 199 约数之和
    Acwing 222 青蛙的约会
    Acwing 220 最大公约数
    Acwing 200 Hankson的趣味题
    牛客 同余方程
    Acwing 198 反素数
    2020牛客多校 第六场B
    牛客 计数器
    Java基础-快捷键以及DOS命令
    A1111 Online Map (30分)(最短路径、Dijkstra+DFS)
  • 原文地址:https://www.cnblogs.com/binliubiao/p/14295099.html
Copyright © 2011-2022 走看看