首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle 鎖機制全解析:類型、相容性與實戰對照表

     編輯:Oracle 資料庫基礎

深入理解 Oracle 鎖模式與衝突關係

Oracle 透過多層次鎖機制實現並發控制。本文系統整理 7 種鎖模式、DML 操作對應鎖類型、以及完整相容性矩陣,協助 DBA 診斷阻塞與死鎖問題。

鎖模式層級定義 (LMODE)

代碼英文縮寫中文名稱說明
0NONE無鎖無任何鎖定
1NULL空鎖僅表示關聯,不限制操作
2SS (Row-S)子共享鎖允許並發查詢,禁止 DDL
3SX (Row-X)子互斥鎖允許查詢與子共享,禁止共享鎖
4S (Share)共享鎖允許查詢與子共享,禁止修改
5SSX (S/Row-X)共享子互斥鎖共享鎖+子互斥,禁止其他修改
6X (Exclusive)互斥鎖完全獨佔,禁止所有其他鎖

常見 DML/DDL 操作對應鎖模式

操作鎖模式LMODE描述
SELECTNULL1不加鎖
SELECT FOR UPDATESS2子共享
INSERT / UPDATE / DELETESX3子互斥
LOCK TABLE ... IN ROW SHARE MODESS2子共享
LOCK TABLE ... IN SHARE MODES4共享
LOCK TABLE ... IN EXCLUSIVE MODEX6互斥
ALTER TABLE / DROP TABLE / TRUNCATEX6互斥
CREATE INDEXS4共享

鎖相容性矩陣 (YES=相容, NO=衝突)

        NULL  SS   SX   S   SSX  X
NULL    YES  YES  YES  YES  YES  YES
SS      YES  YES  YES  YES  YES  NO
SX      YES  YES  YES  NO   NO   NO
S       YES  YES  NO   YES  NO   NO
SSX     YES  YES  NO   NO   NO   NO
X       YES  NO   NO   NO   NO   NO

實務應用提示

  • 查詢 V$LOCK 配合 V$SESSION 可即時掌握阻塞鏈。
  • 長時間交易建議設定 NOWAIT 或 WAIT n 避免無限期等待。
  • 索引維護 (CREATE/DROP INDEX) 會持有 S/X 鎖,建議離峰時段執行。

熟悉鎖相容性是解決並發效能問題的關鍵基礎。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved