構造一致性CR塊讀,ORACLE需要做的工作:
構造一致性讀,ORACLE需要做的工作:
1)克隆這個塊到另一個buffer,克隆的塊跟之前的current塊在一個HASH CHAIN上。我們後面的四個步驟,就是發生在新克隆的塊上的。
2)如果這個塊上存在 延遲塊清除或者快速塊清除,那麼對它進行塊清除的動作。
3)對於塊上所有未提交的事務進行塊級別的回滾,注意這裡並不是回滾整個事務,而是隻針對事務裡修改了這個塊的操作進行回滾。
4)檢查ITL槽位裡,COMMIT SCN有沒有大於查詢時刻SCN(snapshot SCN)的條目,如果有的話,對這個條目涉及到的事務進行塊級別的回滾(類似步驟3)。
5)如果回滾後,ITL槽位裡依然有大於查詢時刻SCN的條目,重複步驟四。
1)克隆這個塊到另一個buffer,克隆的塊跟之前的current塊在一個HASH CHAIN上。我們後面的四個步驟,就是發生在新克隆的塊上的。
2)如果這個塊上存在 延遲塊清除或者快速塊清除,那麼對它進行塊清除的動作。
3)對於塊上所有未提交的事務進行塊級別的回滾,注意這裡並不是回滾整個事務,而是隻針對事務裡修改了這個塊的操作進行回滾。
4)檢查ITL槽位裡,COMMIT SCN有沒有大於查詢時刻SCN(snapshot SCN)的條目,如果有的話,對這個條目涉及到的事務進行塊級別的回滾(類似步驟3)。
5)如果回滾後,ITL槽位裡依然有大於查詢時刻SCN的條目,重複步驟四。
有幾點需要說明:
1)構造一致性讀發生在克隆塊上,不產生日誌。但是在步驟2上,雖然科隆塊不產生日誌,但是current block由於也需要做塊清除,所以會產生日誌。
2)步驟四可能會發生多次。如果查詢耗時較長,在讀取到某個塊前,N個事務已經對它做了修改提交,那麼這個塊就要發生N次步驟4的操作。
3)構造出來的一致性讀的塊一般由於TCH數很小很容易被LUR演算法拋棄重用。
4)一致性讀取回滾的只是這個塊,假如一個事務修改了1000個塊,產生了1000個undo record,但是隻有1個undo recored是這個塊產生的,那麼oracle能夠根據ITL槽位裡記錄的UBA快速的識別到這個undo record,而其他的999條,不會讀取。
1)構造一致性讀發生在克隆塊上,不產生日誌。但是在步驟2上,雖然科隆塊不產生日誌,但是current block由於也需要做塊清除,所以會產生日誌。
2)步驟四可能會發生多次。如果查詢耗時較長,在讀取到某個塊前,N個事務已經對它做了修改提交,那麼這個塊就要發生N次步驟4的操作。
3)構造出來的一致性讀的塊一般由於TCH數很小很容易被LUR演算法拋棄重用。
4)一致性讀取回滾的只是這個塊,假如一個事務修改了1000個塊,產生了1000個undo record,但是隻有1個undo recored是這個塊產生的,那麼oracle能夠根據ITL槽位裡記錄的UBA快速的識別到這個undo record,而其他的999條,不會讀取。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22034023/viewspace-736976/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 修改一個資料塊Oracle需要做的工作Oracle
- 對於晶晶小妹發表的構造ORACLE的CR block的疑問OracleBloC
- CSS構造塊CSS
- 靜態程式碼塊、構造程式碼塊、構造方法構造方法
- oracle11g基於某個資料塊一致性讀版本cr consistent read最大限制系列一Oracle
- 構造程式碼塊
- oracle CR 分析Oracle
- 參考oracle官方文件關於髒讀、一致性讀、undo中已提交資料塊的理解Oracle
- cr塊和latch buffer cache chainAI
- 模型驅動設計的構造塊(上)——DDD模型
- Java中構造方法,構造程式碼塊和靜態程式碼塊執行順序詳解Java構造方法
- Oracle一致性讀(consistents gets)Oracle
- Java中靜態程式碼塊、構造程式碼塊、建構函式、普通程式碼塊Java函式
- Oracle一致性讀(Consistent Read)的原理Oracle
- [How HTTPS works Part 1 — Building Blocks] HTTPS 的工作方式第 1 部分-基本構造塊HTTPUIBloC
- FreeRTOS移植需要做的主要工作
- 關於Static程式碼塊、匿名程式碼塊、構造器的小擴充C程式
- 僅需6200美元,高價效比構建3塊2080Ti的強大工作站
- 客戶拜訪要做的12件工作
- 嬰兒的出生為你解惑建構函式和構造程式碼塊函式
- ORACLE 物理讀 邏輯讀 一致性讀 當前模式讀總結淺析Oracle模式
- java7-2 構造程式碼塊的概述和講解Java
- oracle構建索引index後table的10046資料塊讀取測試Oracle索引Index
- oracle中同一事務內的一致性讀Oracle
- zt_oracle一致性讀consistent readOracle
- 食品app開發之前要做的準備工作APP
- static程式碼塊、構造程式碼塊、建構函式以及Java類初始化順序C程式函式Java
- 【基礎篇一致性讀】一致性讀分析
- Java基礎、jvm 程式碼塊和構造方法的小問題JavaJVM構造方法
- 【故障診斷】cr塊slot notfound解決過程
- Oracle的邏輯結構(表空間、段、區間、塊)——Oracle資料塊(二)Oracle
- 《Effective C++》閱讀總結(二):類的構造、析構和賦值C++賦值
- 【基礎篇一致性讀】一致性讀分析(三)
- 【基礎篇一致性讀】一致性讀分析(續)
- 【一致性讀的計算】
- COMMIT&ROLLBACK時要做哪些工作MIT
- Oracle 12CR2 dbca -silent -createDatabaseOracleDatabase
- 安裝Oracle RAC 12cR1Oracle