oracle死锁优化,Oracle性能优化之LockContention(转)
1、概念
DML事務使用row-level locks,查詢不會鎖定數據。鎖有兩種模式:exlusive、share。
鎖的類型:
? DML or data locks:
– Table-level locks(TM)
– Row-level locks(TX)
? DDL or dictionary locks
一個transaction至少獲得兩個鎖:一個共享的表鎖,一個專有的行鎖。Oracle server將所有的鎖維護在一個隊列里,隊列跟蹤了等待鎖的用戶、申請鎖的類型以及用戶的順序信息。
Lock在下列情況會釋放:commit;rollback;terminated(此時由pmon清理locks)。
Quiesced database:一個數據庫如果除了sys和system之外沒有其他活動session,這個數據庫即處于quiesced狀態?;顒觭ession是指這個session當前處于一個transaction中,或一個查詢中,一個fetch中,或正占有某種共享資源。
2、可能引起lock contention的原因
不必要的高層次的鎖;
長時間運行的transaction;
未提交的修改;
其他產品施加的高層次的鎖。
解決lock contention的方法:鎖的擁有者提交或回滾事務;殺死用戶會話。
3、死鎖
Oracle自動檢測和解決死鎖,方法是通過回滾引起死鎖的語句(statement),但是這條語句對應的transaction并沒有回滾,因此當收到死鎖的錯誤信息后,應該去回滾改transaction的剩余部分。[@more@]
總結
以上是生活随笔為你收集整理的oracle死锁优化,Oracle性能优化之LockContention(转)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode-726 原子的数量 递
- 下一篇: 易农宝信用卡怎么用