ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 讲解Row Movement对系统的影响(二)

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

原创 Linux操作系统 作者:hzwsyvia 时间:2012-12-02 17:38:55 0 删除 编辑
【源于网络】
 
当开启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博客 ” ,链接:https://blog.itpub.net/22308399/viewspace-750406/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2009-08-09

  • 博文量
    55
  • 访问量
    111290