You were brought to this page based on an internet search
and as a free service to Oracle DBAs.
The text below is an except from the book,
Oracle Performance Firefighting, written by
Craig Shallahamer of
OraPub, Inc.
Figures and tables are not included on this page, only their reference.
To order the book in either print or PDF form, click
here.
©2009, 2010 by Craig Shallahamer. This is copyrighted material.
PleaseOut of respect for those involved in the creation of the book and also for
their familes, we ask you to respect the copyright both in intent and deed. Thank you.
-------------------------------
* Time T4: The transaction commits. Buffer 142's ITL is changed, reflecting the commit, but for simplicity, I did not show the associated undo. The commit redo entry is written into the redo log buffer for possible recovery needs. The commit triggers the log writer to flush the redo log buffer to the current online redo log.
At time T4, row 136's value is 115. Any access to this block that started at time T4 or later will see a value of 115. However, even after the transaction commits, if a query started before time T4, a read-consistent view of buffer 142 must be created using buffer 142 at time T4 and undo buffer 210. I am leaving out quite a bit of detail (covered in Chapter 6), because the point I want to make here is that all this read-consistency work is referencing standard Oracle undo segment buffers, not highly optimized in memory structures.
Figure 7-16. How traditional undo segment are used, as well as the various key components (data buffer, undo buffer, redo buffer, and online redo log) change as a transaction progresses
©2009, 2010 by Craig Shallahamer. This is copyrighted material.
PleaseOut of respect for those involved in the creation of the book and also for
their familes, we ask you to respect the copyright both in intent and deed. Thank you.
|