1、事務(wù)
數(shù)據(jù)庫在讀取的記錄上加共享鎖,驗(yàn)證是否可以讀取數(shù)據(jù),直到事務(wù)提交,鎖才能釋放,其他用戶可以讀取數(shù)據(jù),但是不能修改。可以保證在同一事務(wù)中前后兩次讀取記錄是一致的。當(dāng)必須要信任所有讀取的記錄,保證記錄不被修改,我們可以采用repeatable read,例如統(tǒng)計(jì)數(shù)據(jù)(銀行賬號(hào)的余額情況)、關(guān)聯(lián)查詢多個(gè)表等。 5)Last Committed Read(讀取最后提交的數(shù)據(jù)) 這是一種樂觀鎖,它解決了Commited Read的不足,因?yàn)镃ommited Read在記錄被鎖時(shí),其它進(jìn)程需要等待。 這種隔離級(jí)別常被用在WEB應(yīng)用系統(tǒng)中,例如在電子商務(wù)系統(tǒng)中,可以選擇商品添加到購物籃中,但是此時(shí)后臺(tái)可能你正在對(duì)商品的價(jià)格進(jìn)行更新,當(dāng)再次檢查的時(shí)候,可能發(fā)現(xiàn)商品的價(jià)格已經(jīng)發(fā)生變化。 設(shè)置語句參考如下:
相對(duì)Committed Read而言,提高了并發(fā)量和系統(tǒng)的吞吐量。可以通過ONCONFIG參數(shù)設(shè)置為隔離級(jí)別:USELASTCOMMITTED。表需要設(shè)置為行級(jí)鎖,不能是頁級(jí)鎖。 6)幾種隔離級(jí)別的比較 隔離級(jí)別 臟讀? 不可重復(fù)讀? 幻影讀? Dirty Read Yes Yes Yes Last Commited Read No Yes Yes Commited Read No Yes Yes Cursor Stability No No Yes Repeatable Read No No No 5、設(shè)置事務(wù)/會(huì)話的鎖模式 1)不等待鎖的釋放 為默認(rèn)的鎖模式,如果數(shù)據(jù)庫對(duì)象被鎖,則立即返回錯(cuò)誤。錯(cuò)誤消息參考如下: