国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題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關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

Oracleblockcleanout

來源:懂視網 責編:小采 時間:2020-11-09 07:18:47
文檔

Oracleblockcleanout

Oracleblockcleanout:簡單點說,在oracle的block上都有活動事務的標志的,如果一個事務commit后,由于某些block在commit之前已經寫回datafile,或者事務影響到的block數過多,則commit的時候只會清理undo segment header中的事務表信息,data block上的事務標志不
推薦度:
導讀Oracleblockcleanout:簡單點說,在oracle的block上都有活動事務的標志的,如果一個事務commit后,由于某些block在commit之前已經寫回datafile,或者事務影響到的block數過多,則commit的時候只會清理undo segment header中的事務表信息,data block上的事務標志不

簡單點說,在oracle的block上都有活動事務的標志的,如果一個事務commit后,由于某些block在commit之前已經寫回datafile,或者事務影響到的block數過多,則commit的時候只會清理undo segment header中的事務表信息,data block上的事務標志不會清除,在否則代

簡單點說,在oracle的block上都有活動事務的標志的,如果一個事務commit后,由于某些block在commit之前已經寫回datafile,或者事務影響到的block數過多,則commit的時候只會清理undo segment header中的事務表信息,data block上的事務標志不會清除,在否則代價過高。那么在一些讀取這些block時,需要將這些事務標志進行清除,就是延遲塊清除


塊清除即清除數據塊上與“鎖定”有關的信息。Oracle的鎖機制是一種輕量級的鎖定機制,不是通過構建鎖列表來進行數據的鎖定管理,而是直接將鎖作為數據的屬性,存儲在數據塊首部。因此,每次訪問數據時都要去看數據塊頭部的鎖,如果數據已經提交,則可能需要清理這個塊,換句話說,要將這些事務信息刪除。因此這個動作就會生成redo。


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


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


還有一種情況,就是當事務還未commit時,修改的數據塊已經寫入硬盤,當發生commit時oracle并不會把block重新讀入做cleanout,而是把cleanout留到下一次對此塊的訪問是完成。

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

另一種是delayed block cleanout.Oracle的每個事務(transaction)修改不超過10%buffer cache的數據塊時,oracle做的是fast commit cleanout。如果一個事務(transaction)修改的塊超過10% buffer cache,那么超過的塊就執行delayed block cleanout,還有一種情況,就是當事務還未commit時,修改的數據塊已經寫入硬盤,當發生commit時oracle并不會把block重新讀入做cleanout,而是把cleanout留到下一次對此塊的訪問是完成。

當我們update 數據之后,并且沒有commit,此時我們flush buffer cache,將修改的數據塊,flush 到硬盤,那么此時發生的就是delay block cleanout
正常情況下,會去修改block里的相關SCN。 但是實際上此時Oracle 并沒有回去修改這些block,因為再次調用成本太大。 Oracle只更新了undo segment header slot。 當下次再次訪問這個block時,在根據undo segment 來更新block scn 和 itl 上的scn。 如果此時對應的undo segment 已經不存在,就會出發ORA-01555,快照過舊的錯誤。
做了delayed block cleanout之后,itl 變成了SCN。 此時lck,lb標志為都被清零,scn也是從undo segment header transactiontable slot里面得到。如果undosegment header 上的slot被覆蓋了,那么會把undo segment 上的control scn拿來當作upper bound scn
當delayed block cleanout 發生時,依賴與undo segment來保證,如果undo segment 被刪除了,那么會Oracle 會使用system 表空間下的undo$ 基表來保證delayed block cleanout。
一般來說,select 是不會產生redo的。 但如果發生了delayed block cleanout,那么就會產生redo。 當然這只是一種情況,開啟審計等,也會造成select 產生redo。

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

Oracleblockcleanout

Oracleblockcleanout:簡單點說,在oracle的block上都有活動事務的標志的,如果一個事務commit后,由于某些block在commit之前已經寫回datafile,或者事務影響到的block數過多,則commit的時候只會清理undo segment header中的事務表信息,data block上的事務標志不
推薦度:
標簽: 鯊魚 oracle 單點
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 日韩欧美国产高清 | 欧美一区二区三区不卡 | 亚洲va欧美ⅴa国产va影院 | er久99久热只有精品国产 | 亚洲三级在线视频 | 日韩欧美亚洲综合 | 热综合一本伊人久久精品 | 中文字幕 自拍偷拍 | 亚洲国产视频网站 | 国产在线高清不卡免费播放 | 图片亚洲va欧美va国产综合 | 亚洲人成一区 | 国产欧美日韩精品在线 | 国产h视频在线观看 | 日韩在线专区 | 一本一本久久α久久精品66 | 成人久久久久久 | 久久国产欧美日韩高清专区 | 国产毛片一区二区 | 国产精品免费观看 | 国产成人精品视频一区二区不卡 | 日韩在线网 | 97伊人网 | 亚洲午夜久久久久久91 | 亚洲黄色一区二区 | 欧美日韩一二区 | 国产精品免费观看视频播放 | 日韩欧美色 | 伊人网2021 | 国产91成人精品亚洲精品 | 国产欧美在线视频 | 午夜影院欧美 | 欧美在线观看一区二区三 | 亚洲国产精品日韩一线满 | 成人精品视频一区二区在线 | 国产一区二区不卡视频 | 久久一区精品 | 99这里都是精品 | 亚洲欧美日韩在线观看 | 国产色综合久久无码有码 | 国产精品久久久久… |