Re: does update table with identical values actually write to disk?

  • From: Clay Colburn <clay.colburn@xxxxxxxxx>
  • To: Jared Still <jkstill@xxxxxxxxx>
  • Date: Mon, 1 Nov 2010 12:10:37 -0700

Very cool, thanks Jared.


On Mon, Nov 1, 2010 at 11:44 AM, Jared Still <jkstill@xxxxxxxxx> wrote:

> On Mon, Nov 1, 2010 at 10:57 AM, Clay Colburn <clay.colburn@xxxxxxxxx>wrote:
>
>> ... So for example if I have a row of data:
>>
>> create table my_test(id number, val varchar(10));
>> insert into my_test(1, 'one');
>>
>> and I run the statement
>>
>> update my_test set val = 'one' where id = 1;
>>
>> will it write the new value to disk or evaluate that it is the same and
>> skip the write?
>>
>>
> Check your undo and redo stats before and after the transaction
> and I think you will find your answer.
>
> Here's a query to check the stats:
>
> with chgstats as (
>         select
>                 name.name name,
>                 sum(stat.value) valuesum
>         from v$mystat stat, v$statname name
>         where
>                 stat.statistic# = name.statistic#
>                 and (name.name like 'redo%' or name.name like 'undo%')
>         group by name.name
>         order by name.name
> )
> select name, valuesum
> from chgstats
> where valuesum <> 0;
>
>
> Jared Still
> Certifiable Oracle DBA and Part Time Perl Evangelist
> Oracle Blog: http://jkstill.blogspot.com
> Home Page: http://jaredstill.com
>
>

Other related posts: