Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Usenet -> c.d.o.server -> Re: Why forwarding pointers?
Hi Xho,
This is a no win situation and Oracle has chosen the path of low performance hit now as it might not be an issue in the future or it could be fixed at a more appropriate time.
When the update transaction causes a row to migrate there is already a performance hit as Oracle needs to find another block to house the row and apply all the necessary changes. To add all the necessary index maintenance tasks as well could potentially impact such transactions to an unacceptable level.
So Oracle choses the path of least resistance initially.
If nobody queries this row again, no issues.
But correct, subsequent accesses to this row now requires more work.
However to say we have this "redirection hit forever" is not correct. If we detect this is an issue, we can rectify the problem at an appropriate time when normal processing is not impacted.
Like I say, it's a no win situation but I think Oracle has chosen a reasonable approach.
The best solution of course is to set PCTFREE appropriately and accept that 10% is not always the best value ;)
Cheers
Richard
<ctcgag_at_hotmail.com> wrote in message
news:20021003131850.079$4R_at_newsreader.com...
> When a row is migrated, Oracle leaves a forwarding pointer.
>
> Is this solely a matter of performance, that they would rather take
> the redirection hit forever rather than take the onetime hit of tracing
> down all the indices and changing them? Or is it not convenient/possible
> to maintain ACID conditions without forwarding pointers, for some reason I
> don't quite grasp?
>
> Thanks
>
> Xho
>
> --
> -------------------- http://NewsReader.Com/ --------------------
> Usenet Newsgroup Service
Received on Thu Oct 03 2002 - 20:34:38 CDT
![]() |
![]() |