The Oracle database knows three distinct processes that are easily mixed up: Row Chaining, Row Migration and Row Movement.
For the impatient, I provide some very short definitions:
- Row Chaining
- Distribution of a single table row across multiple data blocks.
- Row Migration
- Relocation of an entire table row to a new place, without updating the indexes.
- Row Movement
- Relocation of an entire table row to a new place and updating the indexes.
This article was inspired by the question if Oracle 11r2 performs Row Movement instead of Row Migration for ordinary
UPDATE statements—that is, in absence of partitions. The short answer is: no, it doesn’t. The long answer is the rest of this article.