天天看点

V$SESSION_LONGOPS

v$session_longops视图记录了执行时间长于6秒的某个操作(这些操作可能是备份,恢复,hash join,sort ,nested loop,table scan, index scan 等等)。

要想v$session_longops视图中有记录

1.必须将初始化参数 timed_statistics设置为true或者开启sql_trace

2.必须用analyze或者dbms_stats对对象收集过统计信息

要理解的就是:比如某个sql语句执行时间比较长,但是每个操作都没有超过6秒钟,那么你在v$session_longops这个视图中就无法查询到该信息。还有一点就是,即使某个操作完成了,你在该视图中也可能查询到该操作依然记录在视图中。

这个视图通常用来分析sql运行缓慢的原因,配合v$session视图。

下面的查询显示未完成操作的信息

col start_time format a20

col last_update_time a30

select sid,message, start_time,last_update_time,time_remaining,

elapsed_seconds from v$session_longops where time_remaining>0;

如果是rac:

select inst_id,sid,message, start_time,last_update_time,time_remaining,

elapsed_seconds from gv$session_longops where time_remaining>0;

sql