ORACLE DML鎖定機制
DML鎖
1、TX鎖(事務鎖)
Oracle中的鎖定過程如下:
(1)找到想鎖定的那一行的地址。
(2)到達那一行。
(3)鎖定這一行(如果這一行已經鎖定,則等待鎖住它的事務結束,除非使用了NOWAIT選項)。
V$TRANSACTION,對應每個活動事務都包含一個條目。
V$SESSION,顯示已經登入的會話。
V$LOCK,對應持有所有enqueue佇列鎖以及正在等待鎖的會話,都分別包含一個條目。這
並不是說,對於表中被會話鎖定的每一行,這個檢視中就有相應的一行。你不會看到這種情況。如前所述,不存在行級鎖的一個主列表。如果某個會話將EMP表中的一行鎖定,V$LOCK檢視中
就有對應這個會話的一行來指示這一事實。如果一個會話鎖定了EMP表中的數百萬行,V$LOCK檢視中對應這個會話還是隻有一行。這個檢視顯示了各個會話有哪些佇列鎖。
1、查詢特定使用者會話佇列資訊
selectusername,
v$lock.sid,
trunc(id1/power(2,16)) rbs,
bitand(id1,to_number('ffff','xxxx'))+0slot,
id2 seq,
lmode,
request
fromv$lock,v$session
wherev$lock.type='TX'
andv$lock.sid=v$session.sid
andv$session.username='WEIBIN';
(注:$LOCK表中的LMODE為6,REQUEST為0。如果在OracleServerReference手冊中檢視V$LOCK
表的定義,會發現LMODE=6是一個排他鎖。請求(REQUEST)值為0則意味著你沒有發出請求;
也就是說,你擁有這個鎖。)
selectXIDUSN,XIDSLOT,XIDSQN
fromv$transaction;
2、查詢哪個會話正阻塞了哪個會話
select(selectusernamefromv$sessionwheresid = a.sid) blocker,
a.sid,
'is blocking',
(selectusernamefromv$sessionwheresid = b.sid) blockee,
b.sid
fromv$lock a, v$lock b
wherea.block =1
andb.request >0
anda.id1 = b.id1
anda.id2 = b.id2;
2、TM鎖(DML Enqueue)鎖
TM鎖(TMlock)用於確保在修改表的內容時,表的結構不會改變。例如,如果你已經更新了一個表,
會得到這個表的一個TM鎖。這會防止另一個使用者在該表上執行DROP或ALTER命令。如果你有表的一個TM
鎖,而另一位使用者試圖在這個表上執行DDL,他就會得到以下錯誤訊息:
droptabledept
*
ERRORat line1:
ORA-00054:resourcebusyandacquirewithNOWAITspecified
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25964700/viewspace-700303/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ORACLE DML語句鎖機制導致事務等待示例Oracle
- Oracle鎖機制Oracle
- oracle 鎖機制Oracle
- Enqueue 鎖定機制ENQ
- oracle鎖機制研究Oracle
- 轉載--oracle DML鎖Oracle
- ORACLE鎖機制-轉載Oracle
- oracle中的鎖機制Oracle
- ORACLE鎖機制深入理解Oracle
- ORACLE 鎖機制及解決方法Oracle
- ORACLE 資料庫中的鎖機制Oracle資料庫
- Oracle多粒度封鎖機制研究2Oracle
- Oracle多粒度封鎖機制研究1Oracle
- oracle的鎖和並行機制薦Oracle並行
- Oracle多粒度封鎖機制研究(zt)Oracle
- Oracle的鎖機制歸納總結Oracle
- PHP 鎖機制PHP
- SQLite鎖機制SQLite
- Mysql鎖機制MySql
- java鎖機制Java
- SQL鎖機制SQL
- ORACLE 11g新特性-允許DDL鎖等待DML鎖Oracle
- Oracle多粒度封鎖機制研究二(zt)Oracle
- oracle deadlock 之(一)--鎖機制介紹Oracle
- MySql(七):MySQL效能調優——鎖定機制與鎖優化分析MySql優化
- 轉貼:Oracle的鎖機制歸納總結Oracle
- Oracle資料庫資料鎖機制解析(zt)Oracle資料庫
- Mysql鎖機制分析MySql
- MS SQL鎖機制SQL
- mysql的鎖機制MySql
- 分散式鎖機制分散式
- [鎖機制] 鎖相關查詢
- oracle 監控 DML DDL 鎖 的4個檢視Oracle
- Mysql中的鎖機制——MyISAM表鎖MySql
- synchronized鎖機制 之 程式碼塊鎖synchronized
- 資料庫鎖機制資料庫
- Mysql各種鎖機制MySql
- mysql myisam的鎖機制MySql