In two circumstances, the data for a row in a table may be too large to fit into a single data block.
In the first case, the row is too large to fit into one data block when it is first inserted. In this case, Oracle stores the data for the row in a chain of data blocks (one or more) reserved for that segment. Row chaining most often occurs with large rows, such as rows that contain a column of datatype LONG or LONG RAW. Row chaining in these cases is unavoidable.
In the second case, a row that originally fit into one data block is updated so that the overall row length increases, and the block's free space is already completely filled. In this case, Oracle migrates the data for the entire row to a new data block, assuming the entire row can fit in a new block. Oracle preserves the original row piece of a migrated row to point to the new block containing the migrated row. The rowid of a migrated row does not change.
(对已有的row进行了update的时候，free space已经不足已经满足更新的需要，会发生行迁移 )
When a row is chained or migrated, I/O performance associated with this row decreases because Oracle must scan more than one data block to retrieve the information for the row.
来自 “ ITPUB博客 ” ，链接：http://blog.itpub.net/12361284/viewspace-119551/，如需转载，请注明出处，否则将追究法律责任。