解決該問題分三步走
(一)
--查看undo表空間使用狀況
--插入 和 刪除操做才產生對undo空間使用
select s.username, s.sid, rn.name, rs.extents
,rs.status, t.used_ublk, t.used_urec, round(t.used_ublk*8/1024,1) as "SIZE(MB)"
,do.object_name
from v$transaction t
,v$session s
,v$rollname rn
,v$rollstat rs
,v$locked_object lo
,dba_objects do
where t.addr = s.taddr
and t.xidusn = rn.usn
and rn.usn = rs.usn
and t.xidusn = lo.xidusn(+)
and do.object_id = lo.object_id
(二)
--鎖解決方法
select b.owner,b.object_name,l.session_id,l.locked_mode
from v$locked_object l, dba_objects b
where b.object_id=l.object_id
select t2.username,t2.sid,t2.serial#,t2.logon_time
from v$locked_object t1,v$session t2
where t1.session_id=t2.sid order by t2.logon_time
--查看對應執行的SQL
select sql_text from v$sqltext where address in(select sql_address from v$session where sid=&sid)order by piece
(三)
--kill session
alter system kill session 'sid,serial#'
--若是上面KILL不行則須要在os級進行進程切斷
select spid from v$session s ,v$process p where p.addr=s.paddr and s.sid=&sid
--oracle用戶下執行以下命令
kill -9 &spid
sql