Under certain circumstances, Oracle may be forced to migrate a row from its original block to a new block. This can happen, for instance, when a row is updated and the new row length is too great for the existing block. Less frequently, a row is so big that it cannot fit in a single block and must be chained across multiple blocks.
These migrated and chained rows cause additional unnecessary I/O: the index entries point to the original location, which must then be read to get the addresses of the real location. The Continued Fetch Rate alarm occurs when the number of these "continued row" fetches exceeds a threshold.
To reduce row migration and row chaining
You cannot eliminate row migration entirely — it occurs whenever an updated row in a table grows too long for the Oracle block where it resides. You can, however:
Remove all migrated rows from the table, and reinsert them into a new block.
You can change PCTFREE as required, but this will not affect existing rows that already have too little free space. When you change PCTFREE, you should also use the statement
ANALYZE TABLE table_name LIST CHAINED ROWS
to reduce or eliminate migrated rows in an existing table. For more information refer to the Oracle Database Help Center. See the Oracle Database Administrator's Guide | Managing Schema Objects | Analyzing Tables, Indexes, and Clusters | Eliminating Migrated or Chained Rows in a Table.
You can eliminate chained rows (which, by definition, are too large to fit any single data block) only by increasing the data block size.
© 2024 Quest Software Inc. ALL RIGHTS RESERVED. 使用条款 隐私 Cookie Preference Center