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 主要是并行查询一起使用
  • 相关阅读:
    IL指令列表
    [译].Net中的内存-什么分配在了哪里
    C#中的可空类型
    深入C#并行编程(2) -- 使用线程
    C#自动内存分配
    在C#中使用Json.Net进行序列化和反序列化及定制化
    ASP.NET获取客户端、服务器端基础信息
    MongoDB随笔
    MongoDB.Driver 管道 Aggregate
    MongoDB centos安装问题 error while loading shared libraries: libnetsnmpmibs.so.31
  • 原文地址:https://www.cnblogs.com/binliubiao/p/14295099.html
Copyright © 2011-2022 走看看