讲解Row Movement对系统的影响(二)

ROWMOVEMENT与ShrinkSpace
本文探讨了ROWMOVEMENT特性在Oracle闪回操作及ShrinkSegment中的作用。通过示例展示了ROWID的变化以及ShrinkSegment对数据段的压缩与整理效果。
【源于网络】
 
当开启ROW MOVEMENT后,表被顺利的flashback了,数据被找回。此时,再比较flashback前后记录的ROWID,大多数记录的物理位置都变化。这个过程的内部操作, 可以通过对Flashback Table做SQL Trace来进一步观察。通过Trace,我们不难发现,Flashback Table实际是通过Flashback Query将表中数据进行了一次删除、插入操作,因此ROWID会发生变化。

  Shrink Segment

  Shrink Segment能帮助我们压缩数据段、整理数据碎片、降低高水位,以提高性能、节省空间。它也同样要求开启ROW MOVEMENT。

  SQL代码


  SQL> select username, rowid from test_move;
  USERNAME ROWID
  ------------------------------ ------------------
  DMP AAAwShAAFAAAVlQAAA
  MYTBC AAAwShAAFAAAVlQAAB
  CS2 AAAwShAAFAAAVlQAAC
  TBC AAAwShAAFAAAVlQAAD
  WOW AAAwShAAFAAAVlQAAE
  REPO AAAwShAAFAAAVlQAAF
  ... ...
  SYSTEM AAAwShAAFAAAVlQAAk
  OUTLN AAAwShAAFAAAVlQAAl
  38 rows selected.
  SQL> delete from test_move where username = 'MYTBC';
  1 row deleted.
  SQL> commit;
  Commit complete.
  SQL> alter table test_move disable row movement;
  Table altered.
  SQL> alter table test_move shrink space;
  alter table test_move shrink space
  *
  ERROR at line 1:
  ORA-10636: ROW MOVEMENT is not enabled
  SQL> alter table test_move enable row movement;
  Table altered.
  SQL> alter table test_move shrink space;
  Table altered.
  SQL> select username, rowid from test_move;
  USERNAME ROWID
  ------------------------------ ------------------
  DMP AAAwShAAFAAAVlMAAA
  CS2 AAAwShAAFAAAVlMAAB
  TBC AAAwShAAFAAAVlMAAC
  WOW AAAwShAAFAAAVlMAAD
  REPO AAAwShAAFAAAVlMAAE
  ... ...
  SYSTEM AAAwShAAFAAAVlMAAj
  OUTLN AAAwShAAFAAAVlMAAk
  37 rows selected.
  SQL>

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22308399/viewspace-750406/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/22308399/viewspace-750406/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值