Oracle中,一個Delete操作的流程
Oracle中,一個Delete操作的流程
作者:eygle | 【轉載時請以超連結形式標明文章出處和作者資訊及本宣告】
連結:http://www.eygle.com/archives/2005/01/oracleoeooedele.html
站內相關文章|Related Articles
11gR2新特性之二 - Flash Cache 的SSD支援
如何在自動SGA管理模式下調節引數設定
Granule 與 Redo Log Buffer (log_buffer) 的關係
關於新書中Dirty Buffer的問答
Oracle HowTo:如何強制重新整理Buffer Cache
Oracle中,一個Delete操作的流程
刪除(DELETE)
1.Oracle讀Block到Buffer Cache(如果該Block在Buffer中不存在)
2.在redo log buffer中記錄delete操作的細節
3.在相應回滾段段頭的事務表中建立一個undo條目
4.把將要刪除的記錄建立前映象,存放到Undo Block中
5.在Buffer Cache中的相應資料塊上刪除記錄,並且標記相應的資料塊為Dirty
提交(COMMIT)
1.Oracle產生一個SCN
2.在回滾段事務表中標記該事務狀態為commited
3.LGWR Flush Log Buffer到日誌檔案
3.如果此時資料塊仍然在Buffer Cache中,那麼SCN將被記錄到Block Header上,這被稱為快速提交(fast commit)
4.如果dirty block已經被寫回到磁碟,那麼下一個訪問這個block的程式將會自回滾段中獲取該事務的狀態,確認該事務被提交。然後這個程式獲得提交SCN並寫回 到Block Header上。這被稱為延遲塊清除(delayed block cleanout)。
作者:eygle | 【轉載時請以超連結形式標明文章出處和作者資訊及本宣告】
連結:http://www.eygle.com/archives/2005/01/oracleoeooedele.html
站內相關文章|Related Articles
11gR2新特性之二 - Flash Cache 的SSD支援
如何在自動SGA管理模式下調節引數設定
Granule 與 Redo Log Buffer (log_buffer) 的關係
關於新書中Dirty Buffer的問答
Oracle HowTo:如何強制重新整理Buffer Cache
Oracle中,一個Delete操作的流程
刪除(DELETE)
1.Oracle讀Block到Buffer Cache(如果該Block在Buffer中不存在)
2.在redo log buffer中記錄delete操作的細節
3.在相應回滾段段頭的事務表中建立一個undo條目
4.把將要刪除的記錄建立前映象,存放到Undo Block中
5.在Buffer Cache中的相應資料塊上刪除記錄,並且標記相應的資料塊為Dirty
提交(COMMIT)
1.Oracle產生一個SCN
2.在回滾段事務表中標記該事務狀態為commited
3.LGWR Flush Log Buffer到日誌檔案
3.如果此時資料塊仍然在Buffer Cache中,那麼SCN將被記錄到Block Header上,這被稱為快速提交(fast commit)
4.如果dirty block已經被寫回到磁碟,那麼下一個訪問這個block的程式將會自回滾段中獲取該事務的狀態,確認該事務被提交。然後這個程式獲得提交SCN並寫回 到Block Header上。這被稱為延遲塊清除(delayed block cleanout)。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25897606/viewspace-705138/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ZT Oracle中,一個Delete操作的流程Oracledelete
- Sqlserver、oracle中Merge的使用方法,一個merge語句搞定多個Insert,Update,Delete操作SQLServerOracledelete
- Oracle中審計刪除(DELETE)操作的觸發器Oracledelete觸發器
- Oracle資料庫中Insert、Update、Delete操作速度Oracle資料庫delete
- Oracle中truncate和delete的區別Oracledelete
- MySQL和Oracle中的delete,truncate對比MySqlOracledelete
- 找回Oracle中Delete刪除的記錄Oracledelete
- 一次提速1000倍的delete操作delete
- Oracle中truncate和delete的區別(例項)Oracledelete
- 一個簡單的delete 最佳化delete
- Javascript中的deleteJavaScriptdelete
- oracle中Job的操作Oracle
- rman 中delete 與delete force 的區別delete
- MapInfo中圖斑的具體操作流程API
- oracle實驗記錄 (恢復-rman操作delete(all) input )Oracledelete
- Oracle中SQL解析的主要流程OracleSQL
- LoadRunner中檔案操作的一個例子
- Oracle 刪除表中重複記錄的DELETE SQLOracledeleteSQL
- Javascript中的in,hasOwnProperty,delete,for/inJavaScriptdelete
- Oracle中的LOB操作(轉)Oracle
- oracle中的檔案操作Oracle
- 網站SEO的一般操作流程網站
- rman 中的 delete all input 和 delete input 的區別delete
- RMAN 中delete exipired 和 delete obsolete 的區別delete
- Oracle RMAN的show,list,crosscheck,deleteOracleROSdelete
- oracle truncate 與 delete 的區別Oracledelete
- oracle之DELETE後的恢復Oracledelete
- ORACLE—DELETE表後的恢復Oracledelete
- 一個關於c++字串處理和delete[]與delete差別的問題 (轉)C++字串delete
- Rman 中的delete input的用法delete
- APPEND載入與DELETE操作APPdelete
- ORACLE中殺掉一個程式Oracle
- 一文了解採購管理流程中的各個環節
- 一個請求在Struts2框架中的處理流程框架
- Oracle 11g dg switchover切換操作流程Oracle
- oracle delete 分批刪除Oracledelete
- Oracle DG環境中的管理操作Oracle
- 檢視oracle 資料庫中的級聯刪除(delete cascade)Oracle資料庫delete