本文主要介紹sqlserver共享鎖(數(shù)據(jù)庫(kù)互鎖),下面一起看看sqlserver共享鎖(數(shù)據(jù)庫(kù)互鎖)相關(guān)資訊。
有兩種分類方法。(1)從數(shù)據(jù)庫(kù)系統(tǒng)的角度來(lái)看,鎖分為以下三種:獨(dú)占鎖,獨(dú)占鎖的資源只允許程序用于鎖操作,對(duì)它的任何其他操作都不會(huì)被接受。當(dāng)執(zhí)行數(shù)據(jù)更新命令(即insert、update或delete命令)時(shí),sql server將自動(dòng)使用排他鎖。但是當(dāng)對(duì)象上有其他鎖時(shí),就不可能給它添加獨(dú)占鎖。在事務(wù)結(jié)束之前,不能釋放獨(dú)占鎖。共享鎖共享鎖鎖資源可以被其他用戶讀取,但是其他用戶不能修改它。當(dāng)選擇執(zhí)行命令時(shí),sql server通常是對(duì)象上的共享鎖。當(dāng)讀取共享鎖的數(shù)據(jù)頁(yè)時(shí),共享鎖被立即釋放。更新鎖(update lock)更新鎖設(shè)置以防止死鎖。sql server在準(zhǔn)備更新數(shù)據(jù)時(shí),首先鎖定數(shù)據(jù)對(duì)象的更新鎖,數(shù)據(jù)不能修改,但可以讀取。當(dāng)sql server決定更新數(shù)據(jù)時(shí),它將自動(dòng)更改更新鎖的獨(dú)占鎖。但是當(dāng)對(duì)象上有其他鎖時(shí),它不能被鎖定在更新鎖中。(2)來(lái)自程序員 s的觀點(diǎn),鎖可以分為以下兩種:樂(lè)觀鎖(optimistic locking)樂(lè)觀鎖假設(shè)在處理數(shù)據(jù)時(shí),不需要在應(yīng)用程序代碼中做任何事情,可以直接鎖定記錄,也就是只依靠數(shù)據(jù)庫(kù)來(lái)管理鎖。悲觀鎖(悲觀鎖)悲觀鎖可以 跟不上數(shù)據(jù)庫(kù)系統(tǒng)的自動(dòng)化管理。它要求程序員直接管理對(duì)象上的數(shù)據(jù)或鎖處理,并負(fù)責(zé)獲取、共享和放棄正在使用的數(shù)據(jù)上的任何鎖。
了解更多sqlserver共享鎖(數(shù)據(jù)庫(kù)互鎖)相關(guān)內(nèi)容請(qǐng)關(guān)注本站點(diǎn)。