oracle的一致讀和當(dāng)前讀,相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。
創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司,專注網(wǎng)站設(shè)計(jì)制作、做網(wǎng)站、網(wǎng)站營(yíng)銷推廣,域名注冊(cè),網(wǎng)站空間,網(wǎng)站改版維護(hù)有關(guān)企業(yè)網(wǎng)站制作方案、改版、費(fèi)用等問(wèn)題,請(qǐng)聯(lián)系創(chuàng)新互聯(lián)。一致讀(Consistent read): “發(fā)現(xiàn)”要修改的行時(shí),所完成的獲取就是一致讀。
當(dāng)前讀(Current read): 得到塊來(lái)實(shí)際更新所要修改的行時(shí),所完成的獲取就是當(dāng)前讀。
dml語(yǔ)句實(shí)際上都包含一個(gè)where字句,在做dml時(shí),首先會(huì)根據(jù)where字句的條件做一致讀,即去查找符合where條件的行,在進(jìn)行一致讀的時(shí)候,如果發(fā)現(xiàn)被查找行處于鎖定狀態(tài)時(shí),oracle會(huì)去讀取undo段,進(jìn)而構(gòu)造出一個(gè)事務(wù)開(kāi)始時(shí)對(duì)應(yīng)的一致塊,最終得出要修改的行。
然后oracle再做當(dāng)前讀,即查看要修改行的當(dāng)前值,并比較當(dāng)前值是否和一致讀取的值相等,如果不相等的話,oracle就會(huì)重啟動(dòng)更新。
在重啟動(dòng)更新時(shí),oracle會(huì)先使用select for update來(lái)鎖定這行記錄,然后再進(jìn)行dml操作,這樣可以防止再次重啟動(dòng)。
select for update可以防止重啟動(dòng)的關(guān)鍵原因在于: select for update只會(huì)進(jìn)行當(dāng)前讀,而沒(méi)有一致讀。這樣就不存在由于當(dāng)前讀和一致讀中間的時(shí)間差導(dǎo)致的兩次讀取值不一樣問(wèn)題。
看完上述內(nèi)容,你們掌握oracle的一致讀和當(dāng)前讀的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道,感謝各位的閱讀!
新聞標(biāo)題:oracle的一致讀和當(dāng)前讀-創(chuàng)新互聯(lián)
鏈接URL:http://chinadenli.net/article24/ehice.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開(kāi)發(fā)、靜態(tài)網(wǎng)站、移動(dòng)網(wǎng)站建設(shè)、網(wǎng)站內(nèi)鏈、網(wǎng)站維護(hù)、電子商務(wù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容