RE: Delete based on rowid
Date: Mon, 5 Oct 2009 16:30:52 +0400
No, it’s not a bug. OP has an IOT. And since IOT and ROWID are not big friends <http://download.oracle.com/docs/cd/B19306_01/server.102/b14220/schema.htm#CNCPT911> , “table” access by physical rowid can’t be accomplished, hence, IFS is performed by Oracle.
From: oracle-l-bounce_at_freelists.org [mailto:oracle-l-bounce_at_freelists.org] On Behalf Of Nuno Souto Sent: Monday, October 05, 2009 17:12
Subject: Re: Delete based on rowid
Agreed, but it sounds like a bug to me.
It would be much faster to read the row
given the rowid and then use whatever
column values(s) come up in indexes
to get rid of the index entry.
I can sort of understand a non-unique index
maybe using an index ffs, but a unique one?
Yet, stranger things have been seen...
I suppose it'd also depend on the index depth
Plenty of ideas for some in-depth investigation,
in wet Sydney, Australia
rjamya wrote,on my timestamp of 5/10/2009 9:26 PM:
> I think you are right ... when delete happens on a (indexed) column
> value, the index deletion should be quick but since rowid is used, a
> index ffs is probably the fastest oracle can do.
> On Mon, Oct 5, 2009 at 7:10 AM, <troach_at_gmail.com
> <mailto:troach_at_gmail.com>> wrote:
> Since a btree index is organized by columns, not rowid (assuming its
> a btree index) oracle need to full scan it for that rowid. Since
> rowid points to the row in the table and not the index, it has no
> choice but to full scan the index. Someone please correct me if I'm
--Received on Mon Oct 05 2009 - 07:30:52 CDT