從V$LOCK裡面看到的lmode就是我們能從資料字典裡,能看到的所有的鎖型別--轉

peggypoon發表於2009-09-01

一共有6種

數字越大,鎖的級別就越高

0:none
1:null 空
2:Row-S 行共享(RS):共享表鎖,sub share
3:Row-X 行獨佔(RX):用於行的修改,sub exclusive
4:Share 共享鎖(S):阻止其他DML操作,share
5:S/Row-X 共享行獨佔(SRX):阻止其他事務操作,share/sub exclusive
6:exclusive 獨佔(X):獨立訪問使用,exclusive

0和1

其中1 select 有時候會加上

2 行共享鎖(Select for update,Lock For Update,Lock Row Share )

 select for update語句用於鎖定行,阻止其他使用者在該行上修改資料。當該行被鎖定後其他使用者可以用SELECT語句查詢該行的資料,但不能修改或鎖定該行

3行獨佔(Insert, Update, Delete, Lock Row Exclusive )


4共享鎖(Create Index, Lock Share)

不影響select 操作

5共享行獨佔(Lock Share Row Exclusive)
具體來講有主外來鍵約束時update / delete ... ; 可能會產生4,5的鎖。

6獨佔鎖(Alter table, Drop table, Drop Index, Truncate table, Lock Exclusive) [@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/21988588/viewspace-1026532/,如需轉載,請註明出處,否則將追究法律責任。

相關文章