關於redo的幾個小知識點
關於redo,可能不瞭解的小知識點,我也不知道是否總結的就對,不過先總結著吧。
1、主機掉電,會導致例項失敗,在重啟db時需要例項恢復。
2、在例項恢復時,oracle可以根據redo日誌,將系統恢復到例項失敗的那個時刻。
3、一般能用undo的情況也就是我們執行了rollback或者恢復時的回滾。
4、手動管理undo段是,需要我們手動建立或刪除undo段,而自動管理undo時,oracle會自動建立或銷燬undo段。
5、 在回滾時,oracle會將undo應用到資料塊和索引塊上,使資料塊和索引塊恢復。如果此時資料塊和索引塊已經被寫到磁碟上了(大事務),那oracle會將這些塊讀入快取,然後再應用undo回滾。
6、在回滾時,不需要redo,redo的讀只是用在恢復和歸檔時。
7、commit的開銷:
會增加與資料庫間的通訊。
commit會等待redo寫磁碟,等待事件為log file sync。
8、當發生事務時,會在SGA中生成undo塊、已經修改的塊、生成對於前2項快取的redo塊。
9、每次commit,scn就會加1。
10、觸發器對redo的影響
DML操作 AFTER BEFOR AFTER BEFORE
(10g 以前) (10g 以前) (10g) (10g)
DELETE 不影響 不影響 不影響 不影響
INSERT 增加redo 增加redo 常量redo 常量redo
UPDATE 增加redo 不影響 增加redo 增加
11、當db是nologg模式的話,ddl幾乎是不會被記錄redo的。如果生產redo的話,也是為了保護更新資料字典而生成的。
12、我們可以對索引設定nologging模式,那如果在重建索引時,那豈不是就可以縮短時間啦。
13、insert時,臨時表幾乎不產生redo的,但會產生undo,而在產生undo時會產生undo相應的redo,所以說臨時表只是會產生相當少的redo。而delete時,臨時表和普通表產生的redo一樣多,update時臨時表產生的redo是普通表的一半。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25462274/viewspace-2148892/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 關於range的一個知識點
- 關於Mysql事務,你必須知道的幾個知識點!MySql
- 關於 JavaScript 字串的一個小知識JavaScript字串
- 幾個MQTT的知識點MQQT
- 關於C++ scanf的一個小知識C++
- 關於處理死鎖的一點小知識
- C++必知的幾個知識點C++
- 關於null值的小知識Null
- 關於SFV的小知識(轉)
- 關於前端應該知道的5個小知識前端
- Python中關於Thread的一點小知識Pythonthread
- 物化檢視幾個知識點
- 關於SQL優化的小知識SQL優化
- 關於專案管理的知識點專案管理
- javascript中關於value的一個小知識點(value既是屬性也是變數)JavaScript變數
- React相關知識點:關於ReduxReactRedux
- 【前端詞典】幾個有益的 CSS 小知識前端CSS
- 那些關於Mac終端的小知識Mac
- 昨天講課時整理的幾個知識點
- 幾個shell程式設計小知識(轉)程式設計
- 關於Java兩點需要更新的知識Java
- 關於 CSS 的零碎知識點CSS
- 前端關於單點登入的知識前端
- 關於AP的一些知識點
- 關於標籤元素的重點知識
- VEEAM的小知識點
- 發發關於JavaScript的感慨,隨手記幾個js知識碎片JavaScriptJS
- 關於大資料的幾個小故事大資料
- 關於/*+append*/的一點小常識APP
- 【實用知識】關於“投標有效期”,這幾點要注意
- 關於webpack4的14個知識點,童叟無欺Web
- 關於animation和transition一點知識
- 關於Promise知識點都在這裡Promise
- java小知識點Java
- js小知識點JS
- 小知識點1
- 前端小知識點前端
- mongo 小知識點Go