對於晶晶小妹發表的構造ORACLE的CR block的疑問
我們都知道,ORACLE在三種條件下需要構造CR塊
1)查詢時刻的SCN大於資料塊的COMMIT SCN,即SQL 遊標被開啟時的SCN大於資料庫上記錄的SCN。
2)資料塊上存在LOCK
3)閃回查詢。
晶晶小妹在實驗中很聰明的論證了ORACLE是怎麼樣一步步的構造CR BLOCK的。可是稍微一想發現她的實驗涉及的資料塊始終是一個即131046
這樣的話會導致這個131046被覆蓋的ITL事務資訊始終是記錄在回滾連結串列的頭部即事務開始的第一條DML語句處,因為這個事務自始至終都是這一個塊,覆蓋的ITL資訊肯定也就是這個資料塊上的。
我的疑問是,如果一個事務涉及了N個BLOCK,如1000,1001,1002,事務開始修改的BLOCK是1000,那麼在他對應的回滾(鏈頭)資料塊中會記錄一個覆蓋1000資料塊上的ITL資訊,接著事務又修改了BLOCK 1001,同樣是需要覆蓋1001的ITL資訊的,那麼ORACLE是不是也得記錄他覆蓋1001的ITL資訊,可是這個資訊明顯不是放在鏈頭上的。因為一個事務的鏈頭只有一個(這話說的很沒底氣)
因此我覺得是不能說,只有回滾塊鏈頭上才記錄著塊對應的被覆蓋的ITL資訊。
可能我理解的不對,還希望有高人指正。
1)查詢時刻的SCN大於資料塊的COMMIT SCN,即SQL 遊標被開啟時的SCN大於資料庫上記錄的SCN。
2)資料塊上存在LOCK
3)閃回查詢。
晶晶小妹在實驗中很聰明的論證了ORACLE是怎麼樣一步步的構造CR BLOCK的。可是稍微一想發現她的實驗涉及的資料塊始終是一個即131046
這樣的話會導致這個131046被覆蓋的ITL事務資訊始終是記錄在回滾連結串列的頭部即事務開始的第一條DML語句處,因為這個事務自始至終都是這一個塊,覆蓋的ITL資訊肯定也就是這個資料塊上的。
我的疑問是,如果一個事務涉及了N個BLOCK,如1000,1001,1002,事務開始修改的BLOCK是1000,那麼在他對應的回滾(鏈頭)資料塊中會記錄一個覆蓋1000資料塊上的ITL資訊,接著事務又修改了BLOCK 1001,同樣是需要覆蓋1001的ITL資訊的,那麼ORACLE是不是也得記錄他覆蓋1001的ITL資訊,可是這個資訊明顯不是放在鏈頭上的。因為一個事務的鏈頭只有一個(這話說的很沒底氣)
因此我覺得是不能說,只有回滾塊鏈頭上才記錄著塊對應的被覆蓋的ITL資訊。
可能我理解的不對,還希望有高人指正。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22034023/viewspace-662242/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 對CQRS架構的幾點疑問架構
- 關於Oracle臨時表的使用的小經歷和一點疑問?Oracle
- 構造一致性CR塊讀,ORACLE需要做的工作:Oracle
- JPetStore架構的疑問架構
- Oracle Data block 的物理結構OracleBloC
- 關於TargetServiceFactoryVisitable的疑問
- 對於BITI-RAINY提到的control scn的疑問?AI
- 【Oracle】arraysize的研究(存在疑問)Oracle
- 關於 dingo API 的疑問GoAPI
- 關於jdonframework框架的小疑問Framework框架
- 關於設計模式的疑問設計模式
- 關於C++中建構函式的常見疑問C++函式
- 對技術的一些疑問
- 對 ForumThread 建模的一點疑問thread
- Oracle Data block 的物理結構-體系架構OracleBloC架構
- 關於字典和陣列的疑問陣列
- 關於非同步介面呼叫的疑問?非同步
- 關於no-wait latch 的疑問AI
- 關於論壇快取的疑問快取
- 關於JTA實現的疑問
- oracle dml與block xcurrent_cr及x$bh小記OracleBloC
- 對一個執行計劃的疑問
- 我的疑問
- gc current/cr block busy等待事件GCBloC事件
- 如何診斷RAC系統中的'gc cr multi block request'?GCBloC
- 關於原型模式的看法和疑問原型模式
- select會訪問buffer cache裡哪種型別的data block,XCUR還是CR?型別BloC
- [疑問] [已解決] updateOrCreate () 這類方法應對併發請求的問題
- Ibatis的疑問BAT
- 快取的疑問快取
- 橋模式的疑問模式
- MySQL關於資料字典的一個疑問MySql
- 有幾點關於C語言的疑問C語言
- 關於Multiple Buffer Pools的一些疑問
- 關於Proxy和Decorator設計模式的疑問設計模式
- 關於多執行緒協作的疑問執行緒
- QI4J中關於entity的疑問
- oracle的block其實是和os的扇區相對應!OracleBloC