ROW MOVEMENT特性最初是在8i時引入的,其目的是提高分區表的靈活性——允許更新Partition Key。這一特性預設是關閉,隻是在使用到一些特殊功能時會要求打開。
在下面3中情況下才會使用此特性:
1.flashback table
當開啟ROW MOVEMENT後,表被順利的flashback了,資料被找回。此時,再比較flashback前後記錄的ROWID,大多數記錄的實體位置都變化。這個過程的内部操作, 可以通過對Flashback Table做SQL Trace來進一步觀察。通過Trace,我們不難發現,Flashback Table實際是通過Flashback Query将表中資料進行了一次删除、插入操作,是以ROWID會發生變化。
2.change the partition key
3.alter table shrink space
Shrink Segment能幫助我們壓縮資料段、整理資料碎片、降低高水位,以提高性能、節省空間。它也同樣要求開啟ROW MOVEMENT