ROW MOVEMENT

Enable row movement在3种情况下需要使用。

1.       flashback table

2.       change the partition key

3.       alter table shrink space(这些操作都有一个共同点,可能会改变rowid)
一直都知道ENABLE ROW MOVEMENT的使用,但却不懂它到底做了什么。

我的看法是单个操作一般情况下是不允许改变记录ROWID的,如果单个操作要改变记录的ROWID (如flashback的时候,虽然底层是delete+insert,但是整体上看flashback是一个原子操作) 就必须开启ROW MOVEMENT功能,而我们一般的DELETE +INSERT操作是2个操作,所以可以不用开启。SHRINK SPACE 跟改变PARTITION KEY的底层改变也很复杂

你可能感兴趣的:(oracle)