1. 程式人生 > 其它 >鎖表原因及解決思路 Oracle做insert或者update時未提交事務導致表鎖定

鎖表原因及解決思路 Oracle做insert或者update時未提交事務導致表鎖定

鎖表原因及解決思路 Oracle做insert或者update時未提交事務導致表鎖定
https://www.cnblogs.com/xinruyi/p/11518531.html

1、鎖表發生在insert  update 、delete 中   



2、鎖表的原理是 資料庫使用獨佔式封鎖機制,當執行上面的語句時,對錶進行鎖住,直到發生commite 或者 回滾 或者退出資料庫使用者 



3、鎖表的原因 
  第一、 A程式執行了對 tableA 的 insert ,並還未 commite時,B程式也對tableA 進行insert 則此時會發生資源正忙的異常 就是鎖表
  第二、鎖表常發生於併發而不是並行(並行時,一個執行緒操作資料庫時,另一個執行緒是不能操作資料庫的,cpu 和i/o 分配原則)



4、減少鎖表的概率
1》減少insert 、update 、delete 語句執行 到 commite 之間的時間。具體點批量執行改為單個執行、優化sql自身的非執行速度
2》如果異常對事物進行回滾

1、鎖表發生在insert  update 、delete 中   



2、鎖表的原理是 資料庫使用獨佔式封鎖機制,當執行上面的語句時,對錶進行鎖住,直到發生commite 或者 回滾 或者退出資料庫使用者 



3、鎖表的原因 
  第一、 A程式執行了對 tableA 的 insert ,並還未 commite時,B程式也對tableA 進行insert 則此時會發生資源正忙的異常 就是鎖表
  第二、鎖表常發生於併發而不是並行(並行時,一個執行緒操作資料庫時,另一個執行緒是不能操作資料庫的,cpu 和i/o 分配原則)



4、減少鎖表的概率
1》減少insert 、update 、delete 語句執行 到 commite 之間的時間。具體點批量執行改為單個執行、優化sql自身的非執行速度
2》如果異常對事物進行回滾

轉載請註明出處 https://www.cnblogs.com/xinruyi