Row Chaining and Migrating【每日一译】--2012-10-19

来源:互联网 发布:机械运动模拟软件 编辑:程序博客网 时间:2024/06/05 23:01
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.

2种情况,在一个表中的行数据可能太大以致于不能插入到一个数据块。第一种情况,

行太大了以致于不能插入一个数据块当它第一 次插入的时候。这种情况,ORACLE存储

数据在数据块的链接(一个或多个)预留给段。行链接经常发生在大行,比如行包含一个

LONG或LONG RAW类型的列。行链接在这些情况下是不可避免的。

However, 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.

另外,在第二种情况,一行原来适合存储在一个数据块由于UPDATE更新操作以致整行

长度增加,并且块的空闲空间已经完全填满。这种情况ORACLE迁移整行的数据到一个新

的数据块,假定整行适合在一个新的块中。ORACLE预留迁移行的原始行块指向包含迁移行

的新块。迁移行的ROWID没有改变。

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.

当一个行链接或迁移,I/O性能与这个行相关的性能将下降因为ORACLE必须扫描

更多的数据块返回行的信息。


原创粉丝点击