天天看點

對row movement的一點了解

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