Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.misc -> Re: Oracle blocks
answers embedded
"Paul Murphy" <pmurphy3_at_twcny.rr.com> wrote in message
news:F9%mb.36761$%a2.8323_at_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?
>
Yes.
>
> 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?
>
Yes
>
> 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?
>
Yes, I think you mean the rollback.
>
> 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).
>
>
no unless you are in hot backup mode for that tablespace.
> 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 - 21:38:28 CST