Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.server -> Re: consistent gets
Mentre cercavo di capire la differenza tra una select e un drop database,
Jonathan Lewis ha scritto:
>
> Immediately after you deleted the huge amount of
> data, there were lots of empty leaf blocks at the
> left-hand edge of the index.
>
> Your query for min() would have to start at the
> left hand edge, and walk through all those empty
> blocks (building read-consistent versions if necessary)
> to find the first row that still existed. This is why you
> get so many CR gets.
[CUT]
> The empty blocks will eventually be re-used or
> taken out of the index structure, but for very
> large deletes, the time-delay for a proper cleanout
> can be significant.
[CUT]
Thank you very much Jonathan a very clear explanation.
But this means that the index *is not* always balanced,
because in such situations the leaf blocks at the left hand
are empty.
The dml I've used was "delete from TABLE where cdate < data parallel ...."
so I think that *all* the blocks starting from the left side up to
a block in the middle (which contains data > data_used_on_dml)
should be deleted. If this is right....than I don't understand how can
the index stay balanced in such kind of situations.
regards Received on Tue Mar 22 2005 - 06:50:50 CST