第七章 Redo and Undo (二)

本文探讨了在Oracle数据库中,不同类型的SQL操作如何影响UNDO的使用情况,并特别强调了INDEX的存在对于UPDATE操作产生的UNDO量的影响。通过具体实验展示了在有索引的列上进行UPDATE操作时,产生的UNDO大小会显著增加。
第七章 Redo and Undo (二)

oracle dba redo undo

 日月明王BLOG:    http://sunmoonking.spaces.live.com/

INDEX UNDO的影响

    INSERT只产生很少的UNDO,因为只需要记录ROWID就可以在ROLLBACK的时候UNDO

    UPDATE一般排在第二位,因为一般不会UPDATE一条记录里的所有值。

    DELETE产生的UNDO是最多的,因为DELETEUNDO需要保存所DELETE的整条记录。

    UNDO使用的大小和INDEX有很大关系。

SQL> create table wwm as

  2  select object_name unindexed,object_name indexed

  3  from all_objects;

表已创建。

SQL> create index t_wwm on wwm(indexed);

索引已创建。

SQL> exec dbms_stats.gather_table_stats('SYS','WWM');

PL/SQL 过程已成功完成。

select used_ublk

 from v$transaction

 where addr = (select taddr

 from v$session

 where sid = (select sid

 from v$mystat

 where rownum = 1

 )

 )

未选定行

SQL> update wwm set unindexed=lower(unindexed);

已更新29138行。

SQL> select used_ublk

  2   from v$transaction

  3   where addr = (select taddr

  4   from v$session

  5   where sid = (select sid

  6   from v$mystat

  7   where rownum = 1

  8   )

  9   )

 10  /

 USED_UBLK

----------

       399

看到这次更新用了399BLOCK去存储UNDO信息

SQL> commit;

提交完成。

SQL> select used_ublk

  2   from v$transaction

  3   where addr = (select taddr

  4   from v$session

  5   where sid = (select sid

  6   from v$mystat

  7   where rownum = 1

  8   )

  9   )

 10  /

未选定行

         COMMITUNDO被释放。

         然后在UPDATE有索引的列.

SQL> update wwm set indexed=lower(indexed);

已更新29138行。

SQL> select used_ublk

  2   from v$transaction

  3   where addr = (select taddr

  4   from v$session

  5   where sid = (select sid

  6   from v$mystat

  7   where rownum = 1

  8   )

  9   )

 10  /

 USED_UBLK

----------

      1132         看到在有INDEX上做UPDATE会产生4倍左右的UNDO. 

 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值