Thanks
A reader, October   14, 2001 - 7:49 pm UTC
 
 
Thanks 
 
 
Why do migrated rows need a pointer.
Amar, March     03, 2003 - 1:04 am UTC
 
 
Hi,
What i wanted to ask was why does ORACLE need a pointer in the original block to point to the new block? Why not just directly go to the new block the way it goes to the older block??
Why doesn't Oracle simply update the table directory and row directory to point to the new block when migration occurs??
One reason i could think of was to preserve the rowid... any other reasons ?? 
 
March     03, 2003 - 6:49 am UTC 
 
to preserve the rowid.  to do otherwise would require us to update each and every index during a migration, and if you are using rowid based snapshots.... 
 
 
 
Thanks
Amar, March     03, 2003 - 7:48 am UTC
 
 
And also i would need to rebuild the indexes again if that happens :) 
 
 
Oops!
Amar, March     03, 2003 - 7:51 am UTC
 
 
oops missed that, you had already said regarding the indexes
Any way,Thanks a lot. 
 
 
Why migrate a row?
Arun Gupta, June      07, 2004 - 4:35 pm UTC
 
 
Tom,
While going through the concepts manual of 10g, I just thought that since in newer versions of Oracle, rowid can change (alter table..move tablespace, row movement enable etc.), why does Oracle still do row migration? If the updated row is too big to fit in the block, why not move it to a new block and assign a new rowid? Is it because of index maintenance?
Thanks 
 
June      07, 2004 - 4:40 pm UTC 
 
it can move -- but by default won't.
many applications would break if it moved for something as simple as an update.
Also, an update of a non-indexed column -- that caused a migration -- of a row with 10 indexes on it - would all of a sudden cause 10 indexes to be updated, which would be bad.