Checkpoints and Commits [message #191901] |
Fri, 08 September 2006 09:24 |
KenJ
Messages: 69 Registered: July 2006 Location: London
|
Member |
|
|
All,
A commit writes data from the buffer cache to the redo log buffer and thereby (via LGWR) to the redo log on disk. The undo segment associated with this committed transaction will then be released. The dirty blocks in the buffer cache are not written to the datafiles until a checkpoint.
If user A commits an update statement, a checkpoint is not performed and user B selects from the row which has been updated by user A, where does Oracle source this data as this data is not contained in the datafiles and the undo segment has been released. Will the server source this data from the dirty block in the buffer cache?
I need some guidance here please.
Thanks,
Ken.
n.b. I have read and reread the docs to no avail.
|
|
|
|
Re: Checkpoints and Commits [message #192138 is a reply to message #191901] |
Mon, 11 September 2006 03:23 |
JSI2001
Messages: 1016 Registered: March 2005 Location: Scotland
|
Senior Member |
|
|
Quote: | A commit writes data from the buffer cache to the redo log buffer and thereby (via LGWR) to the redo log on disk.
|
Not quite.
A commit flushes the contents of the redo log buffer to the online redo log files. The redo log buffer is written to prior to any blocks being changed.
Quote: | The undo segment associated with this committed transaction will then be released.
| Basically yes, with the caveat that undo_retention = 0. If not, then the undo block will try to retain this information for as long as the undo_retention states.
Quote: | Will the server source this data from the dirty block in the buffer cache?
|
Yes
|
|
|