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

【源于网络】

 

ROW MOVEMENT特性最初是在8i时引入的,其目的是提高分区表的灵活性——允许更新Partition Key。这一特性默认是关闭,只是在使用到一些特殊功能时会要求打开。

  ROW MOVEMENT特性最初是在8i时引入的,其目的是提高分区表的灵活性——允许更新Partition Key。这一特性默认是关闭,只是在使用到一些特殊功能时会要求打开。除了之前提到的更新Partition Key,还有2个要求打开的ROW MOVEMENT的功能就是flushback table和Shrink Segment。所以,只有当使用到以上3个功能特性时,ROW MOVEMENT才会真正起作用。我们如果需要知道ROW MOVEMENT会对系统产生什么影响,就只要看这3个功能使用时会产生什么影响。

  Flashback Table

  先看Flashback Table。这一功能能帮助我们及时回滚一些误操作,防止数据意外丢失。在使用该功能之前,必须先打开ROW MOVEMENT,否则就会抛ORA-08189错误。我们看以下例子,可以说明在使用Flashback Table功能时,ROW MOVEMENT产生了什么作用:

  SQL代码


  SQL> create table test_move as select * from dba_users;
  Table created.
  SQL> select username, rowid from test_move;
  USERNAME ROWID
  ------------------------------ ------------------
  DMP AAAwSfAAFAAAVlMAAA
  MYTBC AAAwSfAAFAAAVlMAAB
  CS2 AAAwSfAAFAAAVlMAAC
  TBC AAAwSfAAFAAAVlMAAD
  WOW AAAwSfAAFAAAVlMAAE
  REPO AAAwSfAAFAAAVlMAAF
  ... ...
  SYSTEM AAAwSfAAFAAAVlMAAk
  OUTLN AAAwSfAAFAAAVlMAAl
  38 rows selected.
  SQL> delete from test_move where username = 'MYTBC';
  1 row deleted.
  SQL> commit;
  Commit complete.
  SQL> flashback table test_move to timestamp(systimestamp - interval '3' minute);
  flashback table test_move to timestamp(systimestamp - interval '3' minute)
  *
  ERROR at line 1:
  ORA-08189: cannot flashback the table because row movement is not enabled

  此时,由于ROW MOVEMENT还未打开,命令出错。继续完成演示:

  SQL代码


  SQL> alter table test_move enable row movement;
  Table altered.
  SQL> flashback table test_move to timestamp(systimestamp - interval '3' minute);
  Flashback complete.
  SQL> select username, rowid from test_move;
  USERNAME ROWID
  ------------------------------ ------------------
  DMP AAAwSfAAFAAAVlMAAB
  MYTBC AAAwSfAAFAAAVlMAAm
  CS2 AAAwSfAAFAAAVlMAAn
  TBC AAAwSfAAFAAAVlMAAo
  WOW AAAwSfAAFAAAVlMAAp
  REPO AAAwSfAAFAAAVlMAAq
  ... ...
  SYSTEM AAAwSfAAFAAAVlMABJ
  OUTLN AAAwSfAAFAAAVlMABK
  38 rows selected.

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值