对v$session_longops 的理解

Oracle V$SESSION_LONGOPS 视图详解
本文介绍Oracle数据库中的V$SESSION_LONGOPS视图,该视图用于监控运行时间超过6秒的长操作,如备份恢复、统计信息收集及查询执行等。文章详细解释了视图中的字段含义及其应用场景。

V$SESSION_LONGOPS displays the status of various operations that run for longer than 6 seconds (in absolute time). These operations currently include many backup and recovery functions, statistics gathering, and query execution, and more operations are added for every Oracle release

 

v$session_longops 显示了运行时间超过6s的操作,这些操作包括备份恢复,统计信息收集,查询等操作。

 

To monitor query execution progress, you must be using the cost-based optimizer and you must:

  • Set the TIMED_STATISTICS or SQL_TRACE parameters totrue

  • Gather statistics for your objects with the DBMS_STATS package

必须是基于代价的成本优化,将初始化参数 timed_statistics设置为true或者开启sql_trace

 

 

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:主要是并行查询一起使用。

 

作用:

(1)可以查看一条语句的执行进度

(2)查看语句执行过程中的信息

select   b.* from v$session a, v$session_longops b  where a.sid=b.sid   and a.serial#=b.serial# and sid=‘’;

select sid,message, start_time,last_update_time,time_remaining,elapsed_seconds from V$SESSION_LONGOPS where time_remaining>0;

select sid,message, start_time,last_update_time,time_remaining,elapsed_seconds from  GV$SESSION_LONGOPS where time_remaining>0;

 

此语句只能对运行时间比较长的语句,进行监控,对于运行时间比较短的,不会在此视图中显示


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值