鎖有兩種分類方法。
(1) 從數(shù)據(jù)庫系統(tǒng)的角度來看
鎖分為以下三種類型:
鎖分為以下兩種類型:
(1) 從數(shù)據(jù)庫系統(tǒng)的角度來看
鎖分為以下三種類型:
?
-
獨(dú)占鎖(Exclusive Lock)
獨(dú)占鎖鎖定的資源只允許進(jìn)行鎖定操作的程序使用,其它任何對(duì)它的操作均不會(huì)被接受。執(zhí)行數(shù)據(jù)更新命令,即INSERT、 UPDATE 或DELETE 命令時(shí),SQL Server 會(huì)自動(dòng)使用獨(dú)占鎖。但當(dāng)對(duì)象上有其它鎖存在時(shí),無法對(duì)其加獨(dú)占鎖。獨(dú)占鎖一直到事務(wù)結(jié)束才能被釋放。 -
共享鎖(Shared Lock)
共享鎖鎖定的資源可以被其它用戶讀取,但其它用戶不能修改它。在SELECT 命令執(zhí)行時(shí),SQL Server 通常會(huì)對(duì)對(duì)象進(jìn)行共享鎖鎖定。通常加共享鎖的數(shù)據(jù)頁被讀取完畢后,共享鎖就會(huì)立即被釋放。 -
更新鎖(Update Lock)
更新鎖是為了防止死鎖而設(shè)立的。當(dāng)SQL Server 準(zhǔn)備更新數(shù)據(jù)時(shí),它首先對(duì)數(shù)據(jù)對(duì)象作更新鎖鎖定,這樣數(shù)據(jù)將不能被修改,但可以讀取。等到SQL Server 確定要進(jìn)行更新數(shù)據(jù)操作時(shí),它會(huì)自動(dòng)將更新鎖換為獨(dú)占鎖。但當(dāng)對(duì)象上有其它鎖存在時(shí),無法對(duì)其作更新鎖鎖定。
?
(2)從程序員的角度看鎖分為以下兩種類型:
?
-
樂觀鎖(Optimistic Lock)
樂觀鎖假定在處理數(shù)據(jù)時(shí),不需要在應(yīng)用程序的代碼中做任何事情就可以直接在記錄上加鎖、即完全依靠數(shù)據(jù)庫來管理鎖的工作。一般情況下,當(dāng)執(zhí)行事務(wù)處理時(shí)SQL Server會(huì)自動(dòng)對(duì)事務(wù)處理范圍內(nèi)更新到的表做鎖定。 -
悲觀鎖(Pessimistic Lock)
悲觀鎖對(duì)數(shù)據(jù)庫系統(tǒng)的自動(dòng)管理不感冒,需要程序員直接管理數(shù)據(jù)或?qū)ο笊系募渔i處理,并負(fù)責(zé)獲取、共享和放棄正在使用的數(shù)據(jù)上的任何鎖。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
