enable row movement - ok, but why internally this thing is needed [message #584795] |
Fri, 17 May 2013 13:50 |
|
piotrtal
Messages: 168 Registered: June 2011 Location: Poland/Czestochowa
|
Senior Member |
|
|
Hi,
I was digging throught net to find answer for this question but I failed. I know when we should enable row movement on tables (3 cases);
- during updading partition key on partitioned tables
- shrinking tables
- flashbacking tables
and it is easy and clear instruction, but WHY? why internally oracle need to have this row movement enabled? normally during this three operations row can change its rowid but why we need enable this feature manually, and why we need to remember about that? why this option is not enabled as default for each table since it almost does not utilize database.
will someone from you be willing explain me why this option needs to be enabled manually?
by declaring desire of changing rowid for rows we are giving instruction for oracle that we agree with moving rows between blocks, but why we need declare this explicitly.
thanks.
|
|
|
|
Re: enable row movement - ok, but why internally this thing is needed [message #584802 is a reply to message #584795] |
Fri, 17 May 2013 14:17 |
John Watson
Messages: 8963 Registered: January 2010 Location: Global Village
|
Senior Member |
|
|
I asked this question many years ago when SHRINK SPACE was first introduced, and was told something like "these are serious operations that may have major implications and the DBA should consider carefully before attempting them" which corresponds to Michel's answer. However, I think it is rubbish (the concept, not the answer). An ALTER TABLE MOVE will change all your rowids, and you don't need to enable row movement for that.
I suspect that there is something buried deep in the Oracle binaries that makes it necessary, and we normal human beings will never know what it is.
|
|
|
|
|