新聞中心
以下的文章主要介紹的是Oracle delete的執(zhí)行過(guò)程,我們大家都知道Oracle delete與Commit的實(shí)際操作的相關(guān)流程的具體分析,以下就是對(duì)其實(shí)際的操作流程的介紹,望你在瀏覽之后會(huì)有所收獲。

網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)!專(zhuān)注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、小程序定制開(kāi)發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶(hù)創(chuàng)新互聯(lián)還提供了芒市免費(fèi)建站歡迎大家使用!
(1)刪除(delete)流程
Oracle讀Block(數(shù)據(jù)塊)到Buffer Cache(緩沖區(qū))(如果該Block在Buffer中不存在);
在Redo Log Buffer(重做日志緩沖區(qū))中記錄Oracledelete操作的細(xì)節(jié);
在相應(yīng)回滾段段頭的事物表中創(chuàng)建一個(gè)Undo(回滾)條目;
把將要?jiǎng)h除的記錄創(chuàng)建前鏡像,存放到Undo Block(回滾塊)中;
在Buffer Cache中的相應(yīng)數(shù)據(jù)塊上刪除記錄,并且標(biāo)記相應(yīng)的數(shù)據(jù)塊為Dirty(臟)。
(2)提交(Commit)流程
Oracle產(chǎn)生一個(gè)SCN;
在回滾段事物表中標(biāo)記該事物狀態(tài)為Commited;
LGWR(日志讀寫(xiě)進(jìn)程)Flush Log Buffer到日志文件;
如果此時(shí)數(shù)據(jù)塊仍然在Buffer Cache中,那么SCN將被記錄到Block Header上,這被稱(chēng)為快速提交;
如果Dirty Block已經(jīng)被寫(xiě)回到磁盤(pán),那么下一個(gè)訪問(wèn)這個(gè)Block的進(jìn)程將會(huì)自回滾段中獲取該事物的狀態(tài),確認(rèn)該事物被提交。然后這個(gè)進(jìn)程獲得提交SCN并寫(xiě)回到Block Header上,這被稱(chēng)為延遲塊清除。
網(wǎng)頁(yè)名稱(chēng):Oracle delete執(zhí)行過(guò)程的流程介紹
轉(zhuǎn)載源于:http://fisionsoft.com.cn/article/dhedepj.html


咨詢(xún)
建站咨詢(xún)
