Row Chaining and Migrating

oracle_ace發表於2008-01-08

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.
(在資料insert的時候,block已經不足以容納一行的資料,發生了行連結)

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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章