【源于网络】
当开启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/