1. 程式人生 > >oralce 表被鎖導致ExecuteNonQuery執行無響應,也不報錯

oralce 表被鎖導致ExecuteNonQuery執行無響應,也不報錯

在做一個匯入操作時,發現每次執行到一行記錄時就出現ExecuteNonQuery執行無響應,也不報錯,卡住不動了,最後發現是資料表這行資料被鎖了,出現:enq: TX - row lock contention ,有可能是其他系統在操作這個記錄時鎖住了,導致要更新這行記錄時就沒了響應,最後把鎖住資料表的程序殺掉才繼續向下執行了

1、找到鎖表的SID
SELECT a.sid, b.owner, object_name, object_type FROM v$lock a, all_objects b WHERE TYPE = 'TM' and a.id1 = b.object_id;
2、根據SID找到SERIAL SELECT SID,SERIAL# FROM v$session WHERE sid = 73; 3、終止 alter system kill session '73, 10229';