RE: Delete based on rowid
Date: Mon, 5 Oct 2009 16:30:52 +0400
Message-ID: <17182849A17B3C44AE01780E7B519C82065C4685_at_WISE.netcracker.com>
Hi,
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.
Thanks,
Timur Akhmadeev
-----Original Message-----
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
Cc: Oracle-L
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
as well?
Plenty of ideas for some in-depth investigation,
I reckon!
--
Cheers
Nuno Souto
in wet Sydney, Australia
dbvision_at_iinet.net.au
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
> wrong?
--
http://www.freelists.org/webpage/oracle-l
-- http://www.freelists.org/webpage/oracle-lReceived on Mon Oct 05 2009 - 07:30:52 CDT