程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> Oracle delete的相關實際的執行過程

Oracle delete的相關實際的執行過程

編輯:Oracle數據庫基礎

我們今天主要向大家介紹的是Oracle delete的相關實際的執行過程,我們首先從Oracle Delete與Commit的相關操作流程的詳細解析,以下就是具體內容的描述,希望在你今後的學習中會有所幫助。

(1)刪除(Delete)流程

Oracle讀Block(數據塊)到Buffer Cache(緩沖區)(如果該Block在Buffer中不存在);

在Redo Log Buffer(重做日志緩沖區)中記錄Oracle Delete操作的細節;

在相應回滾段段頭的事物表中創建一個Undo(回滾)條目;

把將要刪除的記錄創建前鏡像,存放到Undo Block(回滾塊)中;

在Buffer Cache中的相應數據塊上刪除記錄,並且標記相應的數據塊為Dirty(髒)。

(2)提交(Commit)流程

Oracle產生一個SCN;

在回滾段事物表中標記該事物狀態為Commited;

LGWR(日志讀寫進程)Flush Log Buffer到日志文件;

如果此時數據塊仍然在Buffer Cache中,那麼SCN將被記錄到Block Header上,這被稱為快速提交;

如果Dirty Block已經被寫回到磁盤,那麼下一個訪問這個Block的進程將會自回滾段中獲取該事物的狀態,確認該事物被提交。然後這個進程獲得提交SCN並寫回到Block Header上,這被稱為延遲塊清除。

上述的相關內容就是對Oracle Delete和Commit操作的流程分析的描述,希望會給你帶來一些幫助在此方面。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved