What happens if updating cursor did not fetch any records
For example, for the next gc cr disk read, p3 is set to 44.
obj#=0 indicates that this is an undo block or undo header block.
Essentially, the FG identified that there is a pending transaction, so sent a request to LMS accounting the wait time to ‘gc cr disk read’ event.
When a session commits, that session will revisit the modified blocks to clean out the ITL entries in the modified blocks.gv$cr_block_server can be used to review the number of down converts, Light works etc.But, it is probably not possible to identify the reason for a block down convert after the event. There is a very good reason why this event was introduced.Understanding the wait event Let’s say that a foreground process running in node 1, is trying to access a block using a SELECT statement and that block is not in the local cache.To maintain the read consistency, foreground process will require the block consistent with the query SCN.Essentially, if a block is requested too many times leading to many CR block fabrication, then instead of LMS doing more work, LMS process will simply down convert the block, send the block and grant to the requester an access to the block.FG process will apply undo to construct CR block itself.If LMS process has to initiate I/O, instead of initiating I/O, LMS will downgrade the block mode and send the block to the requesting foreground process (this is known as Light Works rule).Foreground process will apply undo records to the block to construct CR version of the block.Let’s tweak our test case little bit to simulate commit cleanouts.One notable difference in the test case below is that after flushing the buffer cache, we switch back to the session updating the block,commit the transaction and flush the buffer cache again.