共享鎖

共享鎖

共享鎖,又稱為讀鎖,可以查看但無法修改和刪除的一種數據鎖。

基本信息

釋義

(讀取)操作創建的鎖。其他用戶可以並發讀取數據,但任何事務都不能獲取數據上的排他鎖,直到已釋放所有共享鎖。

共享鎖(S鎖)又稱為讀鎖,若事務T對數據對象A加上S鎖,則事務T只能讀A;其他事務只能再對A加S鎖,而不能加X鎖,直到T釋放A上的S鎖。這就保證了其他事務可以讀A,但在T釋放A上的S鎖之前不能對A做任何修改。

區別

1.共享鎖(S鎖):如果事務T對數據A加上共享鎖後,則其他事務只能對A再加共享鎖,不能加排他鎖。獲準共享鎖的事務只能讀數據,不能修改數據。

排他鎖(X鎖):如果事務T對數據A加上排他鎖後,則其他事務不能再對A加任任何類型的封鎖。獲準排他鎖的事務既能讀數據,又能修改數據。

2.共享鎖下其它用戶可以並發讀取,查詢數據。但不能修改,增加,刪除數據。資源共享.

共享鎖的使用

在第一個連線中執行以下語句

begin tran

select * from table1 holdlock -holdlock人為加鎖

where B="b2"

waitfor delay '00:00:30' --等待30秒

commit tran

在第二個連線中執行以下語句

begin tran

select A,C from table1

where B="b2"

update table1

set A="aa"

where B="b2"

commit tran

若同時執行上述兩個語句,則第二個連線中的select查詢可以執行

而update必須等待第一個事務釋放共享鎖轉為排它鎖後才能執行 即要等待30秒

相關詞條

相關搜尋

熱門詞條

聯絡我們