Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> Re: Row migrated in new data blocks

Re: Row migrated in new data blocks

From: Mark D Powell <Mark.Powell_at_eds.com>
Date: 17 Aug 2006 15:58:40 -0700
Message-ID: <1155855520.412190.212370@i42g2000cwa.googlegroups.com>

Sybrand Bakker wrote:
> On 17 Aug 2006 17:13:34 GMT, xhoster_at_gmail.com wrote:
>
> >Will migrated rows effect full table scans if the rowid for the selected
> >rows are needed for some reason? Does the new location of the row contain
> >a pointer back to the original block it was migrated from, so that the real
> >rowid can be determined solely from the new location? If not, it seems
> >like the only way to get the rowid and the data at the same time is for the
> >FTS to break rank when it encounters a pointer to a migrated row and go get
> >the row data rather than waiting for it run across that data during the
> >normal course of the scan.
>
>
> The old row contains a pointer to the new one, and a block read is a
> block read, so the migrated row is read immediately.
>
> --
> Sybrand Bakker, Senior Oracle DBA

I am not sure I understand Sybrand's response so I am going to repeat what happens.

Being that the question was in reference to a full table scan the migrated row header is ignored and the row piece is read when the full scan reads the block that contains the migrated row piece. This block could be read before or after the block that contains the migrated row header, that is, the original block that contained the row before it was migrated.

In the case of an indexed access when Oracle finds the migrated row header piece it immediately issues another single block IO to fetch the block that contains the row piece.

See Frank's asktom reference for more information.

HTH -- Mark D Powell -- Received on Thu Aug 17 2006 - 17:58:40 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US