Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Usenet -> c.d.o.server -> Reading a comitted data before DBW writes it to the disk.
Hi,
I have some doubts on the above mentioned topic.
As I understand, Oracle use Data buffer cache to store the data frm data file in memory for efficient transaction. Consider a case, when a row of a table is modified by a user,that means earlier row values are in roll back segment,current changed value in data buffer cache and info regarding this transaction in redo log buffer.Now suppose the user has committed the transaction.So redo log buffer content gets copied to redo log file.But as DBW writes to the data files at some time interval(viz 3 sec) and commit itself doesnot invoke any checkpoint so its clear that at this instance data files are not updated.Now suppose the user issues Select query to see that particular row fields ,now as par with data consistency Oracle will show the comitted data.
Now my question comes into picture.Where from Oracleshow this updated data? Apparently it seems from Data Buffer cache.So does this cache has information that explicitly says following info
a)this block is changed but not comitted b)this block is changed and comitted but not written back to data files c)this block is changed and comitted and written back todata files
Waiting for some positive response.
Thanks and Regards
somu
Received on Fri Apr 02 2004 - 03:03:49 CST
![]() |
![]() |