注意last_call_et的值,
select s.status,s.last_call_et,s.* from v$session s where username='DDD';
在本例中,开了个sqlplus,然后对一张大表进行select * from big_table;
可以开到一直有结果显示出来。
但当查看v$session可以看到status一直是INACTIVE.
同时开另一个session,不做任何事。(last_call_et一直在增加)
而在query的session,last_call_et只是在0,1之间变化。
oracle doc:
LAST_CALL_ET |
NUMBER |
If the session STATUS is currently ACTIVE , then the value represents the elapsed time in seconds since the session has become active.
If the session |
---|
综上,在判断session为inactive时,要观察一下last_call_et的值,否则有可能误杀。