• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問(wèn)答1問(wèn)答10問(wèn)答100問(wèn)答1000問(wèn)答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問(wèn)答文章1 問(wèn)答文章501 問(wèn)答文章1001 問(wèn)答文章1501 問(wèn)答文章2001 問(wèn)答文章2501 問(wèn)答文章3001 問(wèn)答文章3501 問(wèn)答文章4001 問(wèn)答文章4501 問(wèn)答文章5001 問(wèn)答文章5501 問(wèn)答文章6001 問(wèn)答文章6501 問(wèn)答文章7001 問(wèn)答文章7501 問(wèn)答文章8001 問(wèn)答文章8501 問(wèn)答文章9001 問(wèn)答文章9501
    當(dāng)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

    Oracleblockcleanout

    來(lái)源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-09 07:18:47
    文檔

    Oracleblockcleanout

    Oracleblockcleanout:簡(jiǎn)單點(diǎn)說(shuō),在oracle的block上都有活動(dòng)事務(wù)的標(biāo)志的,如果一個(gè)事務(wù)commit后,由于某些block在commit之前已經(jīng)寫回datafile,或者事務(wù)影響到的block數(shù)過(guò)多,則commit的時(shí)候只會(huì)清理undo segment header中的事務(wù)表信息,data block上的事務(wù)標(biāo)志不
    推薦度:
    導(dǎo)讀Oracleblockcleanout:簡(jiǎn)單點(diǎn)說(shuō),在oracle的block上都有活動(dòng)事務(wù)的標(biāo)志的,如果一個(gè)事務(wù)commit后,由于某些block在commit之前已經(jīng)寫回datafile,或者事務(wù)影響到的block數(shù)過(guò)多,則commit的時(shí)候只會(huì)清理undo segment header中的事務(wù)表信息,data block上的事務(wù)標(biāo)志不

    簡(jiǎn)單點(diǎn)說(shuō),在oracle的block上都有活動(dòng)事務(wù)的標(biāo)志的,如果一個(gè)事務(wù)commit后,由于某些block在commit之前已經(jīng)寫回datafile,或者事務(wù)影響到的block數(shù)過(guò)多,則commit的時(shí)候只會(huì)清理undo segment header中的事務(wù)表信息,data block上的事務(wù)標(biāo)志不會(huì)清除,在否則代

    簡(jiǎn)單點(diǎn)說(shuō),在oracle的block上都有活動(dòng)事務(wù)的標(biāo)志的,如果一個(gè)事務(wù)commit后,由于某些block在commit之前已經(jīng)寫回datafile,或者事務(wù)影響到的block數(shù)過(guò)多,則commit的時(shí)候只會(huì)清理undo segment header中的事務(wù)表信息,data block上的事務(wù)標(biāo)志不會(huì)清除,在否則代價(jià)過(guò)高。那么在一些讀取這些block時(shí),需要將這些事務(wù)標(biāo)志進(jìn)行清除,就是延遲塊清除


    塊清除即清除數(shù)據(jù)塊上與“鎖定”有關(guān)的信息。Oracle的鎖機(jī)制是一種輕量級(jí)的鎖定機(jī)制,不是通過(guò)構(gòu)建鎖列表來(lái)進(jìn)行數(shù)據(jù)的鎖定管理,而是直接將鎖作為數(shù)據(jù)的屬性,存儲(chǔ)在數(shù)據(jù)塊首部。因此,每次訪問(wèn)數(shù)據(jù)時(shí)都要去看數(shù)據(jù)塊頭部的鎖,如果數(shù)據(jù)已經(jīng)提交,則可能需要清理這個(gè)塊,換句話說(shuō),要將這些事務(wù)信息刪除。因此這個(gè)動(dòng)作就會(huì)生成redo。


    Cleanout有2種,一種是fast commit cleanout(提交清除),另一種是delayed block cleanout(延遲清除).


    提交清楚是如何工作的?Oracle會(huì)記錄已修改的塊列表,這些列表可以有20個(gè)塊,Oracle根據(jù)需要分配多個(gè)這樣的列表,但是如果這些修改的塊加起來(lái)超過(guò)buffer_cache的10%,oracle就停止分配這樣的列表,因此當(dāng)提交時(shí)就只會(huì)清理最多10%buffer_cache的數(shù)據(jù)塊,其余的部分就延遲清除,這樣也是為了提高commit的效率。


    還有一種情況,就是當(dāng)事務(wù)還未commit時(shí),修改的數(shù)據(jù)塊已經(jīng)寫入硬盤,當(dāng)發(fā)生commit時(shí)oracle并不會(huì)把block重新讀入做cleanout,而是把cleanout留到下一次對(duì)此塊的訪問(wèn)是完成。

    Cleanout有2種,一種是fast commit cleanout,

    另一種是delayed block cleanout.Oracle的每個(gè)事務(wù)(transaction)修改不超過(guò)10%buffer cache的數(shù)據(jù)塊時(shí),oracle做的是fast commit cleanout。如果一個(gè)事務(wù)(transaction)修改的塊超過(guò)10% buffer cache,那么超過(guò)的塊就執(zhí)行delayed block cleanout,還有一種情況,就是當(dāng)事務(wù)還未commit時(shí),修改的數(shù)據(jù)塊已經(jīng)寫入硬盤,當(dāng)發(fā)生commit時(shí)oracle并不會(huì)把block重新讀入做cleanout,而是把cleanout留到下一次對(duì)此塊的訪問(wèn)是完成。

    當(dāng)我們update 數(shù)據(jù)之后,并且沒有commit,此時(shí)我們flush buffer cache,將修改的數(shù)據(jù)塊,flush 到硬盤,那么此時(shí)發(fā)生的就是delay block cleanout
    正常情況下,會(huì)去修改block里的相關(guān)SCN。 但是實(shí)際上此時(shí)Oracle 并沒有回去修改這些block,因?yàn)樵俅握{(diào)用成本太大。 Oracle只更新了undo segment header slot。 當(dāng)下次再次訪問(wèn)這個(gè)block時(shí),在根據(jù)undo segment 來(lái)更新block scn 和 itl 上的scn。 如果此時(shí)對(duì)應(yīng)的undo segment 已經(jīng)不存在,就會(huì)出發(fā)ORA-01555,快照過(guò)舊的錯(cuò)誤。
    做了delayed block cleanout之后,itl 變成了SCN。 此時(shí)lck,lb標(biāo)志為都被清零,scn也是從undo segment header transactiontable slot里面得到。如果undosegment header 上的slot被覆蓋了,那么會(huì)把undo segment 上的control scn拿來(lái)當(dāng)作upper bound scn
    當(dāng)delayed block cleanout 發(fā)生時(shí),依賴與undo segment來(lái)保證,如果undo segment 被刪除了,那么會(huì)Oracle 會(huì)使用system 表空間下的undo$ 基表來(lái)保證delayed block cleanout。
    一般來(lái)說(shuō),select 是不會(huì)產(chǎn)生redo的。 但如果發(fā)生了delayed block cleanout,那么就會(huì)產(chǎn)生redo。 當(dāng)然這只是一種情況,開啟審計(jì)等,也會(huì)造成select 產(chǎn)生redo。

    聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    Oracleblockcleanout

    Oracleblockcleanout:簡(jiǎn)單點(diǎn)說(shuō),在oracle的block上都有活動(dòng)事務(wù)的標(biāo)志的,如果一個(gè)事務(wù)commit后,由于某些block在commit之前已經(jīng)寫回datafile,或者事務(wù)影響到的block數(shù)過(guò)多,則commit的時(shí)候只會(huì)清理undo segment header中的事務(wù)表信息,data block上的事務(wù)標(biāo)志不
    推薦度:
    標(biāo)簽: 鯊魚 oracle 單點(diǎn)
    • 熱門焦點(diǎn)

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 亚洲第一区精品观看| 国产精品无套内射迪丽热巴| 无码日韩人妻精品久久蜜桃| 国产成人精品久久综合| 欧美精品VIDEOSSEX少妇| 久久久精品国产亚洲成人满18免费网站| 国产精品毛片无遮挡| 亚洲精品色午夜无码专区日韩| 国产精品永久免费| 久久精品国产99国产电影网| 久久久久亚洲精品无码蜜桃| 中文字幕久久精品| 欧美激情精品久久久久久| 国产精品部在线观看| 亚洲国产精品久久久久婷婷软件 | 91大神精品全国在线观看| 国产午夜无码精品免费看| 亚洲精品乱码久久久久66| 色婷婷久久久SWAG精品| 久久精品无码专区免费| 国产欧美精品区一区二区三区| 麻豆精品成人免费国产片| 2020国产精品| 国产国产精品人在线观看| 精品卡一卡二卡乱码高清| 热re99久久6国产精品免费| 亚洲av永久无码精品漫画| 亚洲精品你懂的在线观看| 中文精品99久久国产 | 久久久久亚洲精品中文字幕| 国产精品无码久久久久| 国产欧美精品专区一区二区 | 久久五月精品中文字幕| 精品无码国产污污污免费网站国产 | 亚洲欧美日韩精品久久| 欧美精品亚洲精品日韩1818| 日本精品不卡视频| 欧美精品国产一区二区| 亚洲国产精品久久久久| 91精品福利在线观看| 天天爽夜夜爽精品视频app|