經常出現一個問題,oracle的某張表突然無法更新了,無論是通過pl/sql Developer 還是通過sqlplus都無法更新,執行update語句或者執行select * from table_name for update 都一樣,一直處於執行狀態,無法完成,這時候我就猜想是不是session被鎖死了呢?帶著這個問題,我們寫一條SQL語句:
--鎖表查詢SQL
SELECT object_name, machine, s.sid, s.serial# FROM gv$locked_object l, dba_objects o, gv$session s WHERE l.object_id = o.object_id AND l.session_id = s.sid;
執行結果如下:
可以看到這一條數據,也就是說,存在那麼一個表被鎖死了,這時候呢,我們也確認了,之前無法執行update的這張表確實是因為被鎖死了所以無法完成更新操作.<喎?http://www.Bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+yOe6zsrNt8XE2D+8zND41rTQ0NK7zPVTUWwg0+++5Do8L3A+CjxwPjwvcD4KPHByZSBjbGFzcz0="brush:sql;">ALTER system kill session '601, 802';
沒有了被鎖死的session了,這時候再去執行我們的表更新操作,可以看到,更新已經沒有問題了.