Oracle commit詳細用法

commit工作過程
  • commit提交之前
        Oracle在SGA撤銷段緩衝區中生成撤銷記錄,撤銷記錄包含更新和刪除錶行的舊值
        Oracle在SGA重做日誌緩衝區生成重做日誌記錄
        Oracle修改SGA數據庫中的緩衝區
  • commit提交時
        重做記錄中的事務被標記上爲所提交事務的唯一scn
        日誌寫入程序將事務重做日誌信息和事務scn,從重做日誌緩衝區寫到磁盤上的重做日誌文件
        釋放Oracle持有的鎖,標記事務爲完成

commit參數
    commit_wait初始化參數
    commit_wait={nowait|wait|force_wait}
    Oracle默認是commit方式是wait
    作用:控制重做日誌寫入方式
    備註:nowait適用場景(a,有大量的事務redo,信息需要寫入redo log;b,容忍部分數據丟失;c,等待LGWR寫對運用程序來說不可以忍受)。
              force_wait:將會適用oracle默認方式提交

    commit_logging 初始化參數
    commit_logging={immediat|batch}
    immediat:LGWR將redo信息立即寫入到重做日誌文件
    batch:redo信息會被buffer,即redo不立即寫入到重做日誌文件
    
commit用法
     commit
     commit write wait;
    commit write nowait
    commit write batch;
    commit write immediate;

wait、nowait控制什麼時候將redo信息寫入到redo logs
immediat 、batch控制redo信息以怎樣的方式寫入到redo logs
備註:pl/sql默認方式batch nowait
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章