Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.misc -> Oracle blocks

Oracle blocks

From: Paul Murphy <pmurphy3_at_twcny.rr.com>
Date: Mon, 27 Oct 2003 02:11:49 GMT
Message-ID: <F9%mb.36761$%a2.8323@twister.nyroc.rr.com>


Quick question(s) that I'm not getting answers to in the books I've read:

Does Oracle always read and write a whole Oracle block rather than just the changed areas of the block?

To be more specific:

  1. When Oracle reads rows for a select statement, does it pull the entire block into the buffer even if only one row of data is needed from the block?
  2. Does Oracle (over)write the whole block of data back to the data file when the buffer is flushed even if only a single column value of one row is changed?
  3. Does Oracle put the whole original block into the undo segment and create a duplicate of that block in the undo segment with the potential row data changed for an update statement (2 full blocks - one with and one without the results of the update statement) until commit time?
  4. Does the redo log buffer hold full blocks and does the lgwr process write full blocks (for this I think the answer is no, but for the others I think the answer is probably yes).

Thanks for the information. It's taking a while to get used to all the moving parts (redo log getting completely flushed when one statement commits, the data files getting written to even if changes aren't commited, the undo segments to undo any uncommited transactions). Fast, reliable and a bit complicated, but I'm starting to see the big picture.

Paul Murphy Received on Sun Oct 26 2003 - 20:11:49 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US