On Mon, Oct 26, 2015 at 12:07 PM, Ashutosh Bapat < ashutosh.ba...@enterprisedb.com> wrote:
> > > On Mon, Oct 26, 2015 at 10:19 AM, Amit Kapila <amit.kapil...@gmail.com> > wrote: >> >> >> I think Oracle just copies the changed part of old row to rollback >> segment. >> Also in Redo logs, it just writes the changed column value (both old and >> new). So for the case we are discussing in this thread (one changed >> column out of 200 columns), Oracle will just write the old value of that >> column in Redo and then in rollback segment, and write the new value >> in Redo and then do the in-place update in heap row. >> >> > In that case, readers would pay the penalty for constructing the row. > Readers that have snapshot older than update-transaction needs to pay such cost, otherwise all newer transactions can directly read from page. Also not all old-transaction readers have to pay any such cost. Not only that, such a design has an advantage that the bloat due to older data won't be there. With Regards, Amit Kapila. EnterpriseDB: http://www.enterprisedb.com