undo的段頭存在著一個SEQ值,當回滾段使用從A區到B區的時候,相對應的SEQ值便會加1,例如A區的SEQ值是6,則undo段使用到B區的時候變會成為7。
創新互聯是一家集網站建設,鳩江企業網站建設,鳩江品牌網站建設,網站定制,鳩江網站建設報價,網絡營銷,網絡優化,鳩江網站推廣為一體的創新建站企業,幫助傳統企業提升企業形象加強企業競爭力。可充分滿足這一群體相比中小企業更為豐富、高端、多元的互聯網需求。同時我們時刻保持專業、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們為更多的企業打造出實用型網站。
但是undo空間是循環使用的,當該undo段中的事務提交過了之后,相對應的塊就可以被覆蓋掉。如下:
當3號區使用完全之后,oracle將會重新使用1號區,并將其SEQ值加一,改為7,以此類推,新1號區使用完了之后,2號區也會被覆蓋,SEQ值改為8.
但是undo空間是循環使用的,當該undo段中的事務提交過了之后,相對應的塊就可以被覆蓋掉。如下:
當3號區使用完全之后,oracle將會重新使用1號區,并將其SEQ值加一,改為7,以此類推,新1號區使用完了之后,2號區也會被覆蓋,SEQ值改為8.
undo塊覆蓋的原則是即將被覆蓋的undo塊必須小于前一個已經覆蓋過的SEQ值。如果如下圖,
2號區一直有一個事務占住未被釋放,等到undo再次重用到1號區的時候,1號區的值變為10。這個時候由于2號區的事務一直未被釋放,oracle無法對2號區進行覆蓋,也不能跳過2號區去重用3號區的undo塊。這個時候oracle便會進行一次extend,在一號區和二號區中間新增一個undo區,我們稱為新2號區。然后oracle便會在新2號區進行覆蓋,在新2號區覆蓋完成之后,如果老2號區還未提交事務,oracle便會再次申請extend,直到事務提交。這樣會造成undo段短時間內消耗大量空間。如下:
如果該2號區在undo段的開頭部分,這樣會導致undo段大部分空間不能重用,所以oracle增加了一種steal機制。
首先確定的是undo偷竊機制的基本單位是區。例如發生上述情況:
原二號區:即三號區一直有事務在占用部分塊,導致其無法被覆蓋。那oracle的undo偷竊機制會啟到作用,其他undo段將會把4號區偷走,此undo段便會剩下三個區,然后在新2號區后進行extend。
但是如果三號區的事務一直不提交,oracle會一直extend,導致3號區之前的區一直無法被重用,undo段一直在增加,可能會報錯undo空間無法擴展。所以事務無論大小,還是要盡快提交。
當前文章:undo的extend和steal機制
當前路徑:http://vcdvsql.cn/article44/peiohe.html
成都網站建設公司_創新互聯,為您提供網站改版、網站營銷、外貿建站、網頁設計公司、移動網站建設、網站導航
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯