一、什么情况下,操作信息会出现在V$SESSION_LONGOPS
同时满足以下几个条件,操作信息才会出现在V$SESSION_LONGOPS中。
1、操作是以下几种操作之一
Table scan;
Index Fast Full Scan;
Hash join;
Sort/Merge;
Sort Output;
Rollback;
Gather Table’s Index Statistics
不同的版本下V$SESSION_LONGOPS记录的操作可能会不一样。
2、操作时间大于6秒
3、读取的block数目大于一定量
1)如果是TABLE FULL SCAN,读取的block数目至少大于10000
2)如果是Index Fast Full Scan,读取的block数目至少大于1000
3)其他操作读取block的数目不明
以上情况很有可能是需要数据库性能优化的,可以通过V$SESSION_LONGOPS找出长时间运行的SQL语句,然后再来想办法优化,具体方法如下:
select * from V$session_Longops a where a.SOFAR < a.TOTALWORK
找出长时间为完成的操作。
select *
from V$sqlarea b
where b.SQL_ID in
(select sql_id from V$session_Longops a where a.SOFAR < a.TOTALWORK)
找出具体运行的SQL语句。