`

oracle中v$session_longops视图介绍

阅读更多

 

       DBA们经常需要监控数据库中一些花费大量时间的操作,如备份恢复,收集统计信息,排序都会记录在这个视图当中。
       这个视图主要是显示运行时间超过6秒的数据库操作的状态.所以对于数据库监控一些耗时的操作是非常有意义的。
并且可以看到某个进程的执行进度。
来看看这个视图的结构:

V$SESSION_LONGOPS列说明

SID:Session标识
SERIAL#:Session串号
OPNAME:操作简要说明
TARGET:操作运行所在的对象
TARGET_DESC:目标对象说明
SOFAR:至今为止完成的工作量
TOTALWORK:总工作量
UNITS:工作量单位
START_TIME:操作开始时间
LAST_UPDATE_TIME:统计项最后更新时间
TIME_REMAINING:预计完成操作的剩余时间(秒)
ELAPSED_SECONDS:从操作开始总花费时间(秒)
CONTEXT:前后关系
MESSAGE:统计项的完整描述
USERNAME:执行操作的用户ID
SQL_ADDRESS:用于连接查询的列
SQL_HASH_VALUE:用于连接查询的列
QCSID:

 

 

示例:
创建一个数据量比较大的数据表,语句如下:

create table log_ as select level lv,rownum rn from dual connect by level<10000000;
insert into log_ value select level lv,rownum rn from dual connect by level<10000000;

执行查询log_表,命令如下:

SQL> set timing on ;
SQL> select count(1) from log_ t ;
 
  COUNT(1)
----------
  19999998
 
Executed in 6.438 seconds

 此时执行如下SQL语句.  

select * from sys.v_$session_longops t where t.TARGET like '%LOG_' ;

 会发现,执行时间大于6秒的那条记录已经被记录在v_$session_longops视图中了.

 

下面利用关联查询可以查询出该SQL语句的完整内容(也就是能查询出所有执行时间大于6秒的语句).

select * from v$sql a,v$session_longops b where a.SQL_ID = b.SQL_ID ;
select * from v$sqlarea a,v$session_longops b where a.HASH_VALUE = b.SQL_HASH_VALUE ;

其中 a.SQL_TEXT 和 a.SQL_FULLTEXT 代表执行的SQL语句.正常SQL_TEXT就可以显示出要查询的SQL语句,如果该语句太长,那么就需要用a.SQL_FULLTEXT字段进行查看.

 

也可以用 v$session_longops 和 v$session 关联查询出其 session 信息.

select * from v$session a,v$session_longops b where a.SID = b.SID and a.SERIAL# = b.SERIAL# ;

 

 

 

 

分享到:
评论

相关推荐

    学些动态性能表-word版

    学习动态性能表(十)--v$session_longops 学习动态性能表(11)--v$latch$v$latch_children 学习动态性能表(12)--v$db_object_cache 学习动态性能表(13)--v$open_cursor 学习动态性能表(14)--v$parameter&v$system_...

    Oracle数据库中回滚监视的深入探讨

    当在 Oracle Database 10g 中回滚长期运行的事务时,无论是并行实例恢复会话还是用户执行的回滚语句,您所需做的一切就是查看视图 V$SESSION_LONGOPS 并评估还需要多少时间。本文对Oracle数据库中回滚监视进行深入...

    不均衡分区和绑定变量窥视导致的查询计划错误

    然后查询V$SESSION_LONGOPS,立即发现下面的语句正在进行长操作:从V$SESSION_LONGOPS看,它正在对表CR_BKG_INTMD_SHMT_PARTITION做FULLTABLESCAN。而表CR_BKG_INTMD_SHMT_PARTITION是一张非常大的分区表,是我们...

    为用户提供对回滚操作时间准确评估

    本文介绍了在Oracle Database 10g中回滚长期运行的事务时,无论是并行实例恢复会话还是用户执行的回滚语句,您所需做的一切就是查看视图V$SESSION_LONGOPS并评估还需要多少时间。

    浅析导致数据库性能问题的常见原因

     v$session_longops视图记录了超过6秒的所有SQL语句  这其中绝大部是全表扫描的语句!  2、 语句共享性不好  常出没在OLTP,由于app没有合理使用绑定变量,导致大量重复的语句Parse,浪费大量的shared pool...

    Oracle-Query-Progress:显示长时间运行的 Oracle 查询的进度

    只需提供查询的sql_id (可从v$session_longops获得),它将返回执行计划以及当前进度。 该脚本确实依赖于simplify_count.sql包含的两个实用程序函数。 在运行主脚本之前,您需要先运行它。 示例脚本输出: =======...

    数据库项目组日常运维及应急故障处理手册.docx

    from v$session_longops L, v$session s where time_remaining &gt; 0 and l.sid = s.sid order by start_time; 坏块恢复 在遇到坏块的时,一般应按以下的流程来处理: 1 如果坏块的对象是索引,重建索引 2 ...

    ora分析脚本

    - longops: run progression monitor - sessions: currently open sessions - stack &lt;os_pid&gt; get process stack using oradebug - cursors [all] &lt;match_str&gt;: [all] parsed cursors - sharing &lt;sql_id&gt;: ...

    oracle DBA日常脚本

    ..........\longops.sql ..........\LRU_Latch_Ratio.sql ..........\Max_Extents.sql ..........\Monitor.sql ..........\Monitoring_Status.sql ..........\Monitor_Memory.sql ..........\Non_Indexed_FKs...

Global site tag (gtag.js) - Google Analytics