只要有人用了: html
select t.* from 表名 t where 字段=xxx for updatesession
而不是: oracle
select t.rowid,t.* from 表名 t where 字段=xxx for updatesvn
進行數據更新操做,就會出現這種狀況.spa
for update 不帶rowid,是一種很傻X的行爲,就像使用svn進行源碼修改不先獲取最新同樣.htm
若是是在客戶現場的真實庫中這樣操做還會致使客戶業務處理掛起,後果是很嚴重的.對象
所以,在項目組內尤爲是新人須要強調相關操做規範,使相關動做造成習慣.blog
要查詢是誰進行了全表鎖定,參考如下語句:terminal
"get
----查詢oracle用戶名,機器名,鎖表對象
SELECT l.session_id sid, s.serial#, l.locked_mode,l.oracle_username,
l.os_user_name,s.machine, s.terminal, o.object_name, s.logon_time
FROM v$locked_object l, all_objects o, v$session s
WHERE l.object_id = o.object_id
AND l.session_id = s.sid
ORDER BY sid, s.serial# ;
"
更具體內容詳見: