与此相关的很好的一个文章见:http://www.gplivna.eu/papers/v$session_longops.htm
与此相关的很好的一个文章见:http://www.gplivna.eu/papers/v$session_longops.htm
动态性能视图v$session_longops中可以查看系统中长时间事务的执行进度。一个操作是否可以在这个视图中查到有一个重要的标准是:这个事务的执行时间超过了6秒,但并不是说,所有超过六秒的事务都会显示在这个视图中。例如,你可以在这个视图中找到hash join的长事务,但是你永远不可能找到nested loop join类型的长事务,即使这个事务超过了6秒并且很复杂。
用如下SQL语句查询这个视图中最新的信息:
select * from (select opname, target, sofar, totalwork,units, elapsed_seconds, message from v$session_longops order by start_time desc) where rownum <=1;
这个视图中的列time_remaining是oracle预估的一个剩余时间,是按线性比例预估出来的time_remaining/elapsed_seconds=(total_works-sofar)/sofar
v$session_longops视图中会显示如下这些操作的长事务:
- Table scan;
- Index Fast Full Scan;
- Hash join;
- Sort/Merge;
- Sort Output;
- Rollback;
- Gather Table’s Index Statistics.
table scan
对于table scan 来说,这个操作显示在v$session_longops中有两个条件:1.执行时间大于六秒。2.扫描的块大于10000块。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/82387/viewspace-1030113/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/82387/viewspace-1030113/