Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Usenet -> c.d.o.server -> Re: How are INDEXES BALANCED?
On Thu, 18 Sep 1997 20:48:26 GMT, "Jonathan Lewis" <jonathan_at_jlcomp.demon.co.uk> wrote:
>
>And whilst we're on the topic of proper testing -
>
>The last time I used a block-dumping check to see what happened with
>indexes based on sequences (some time around 7.1.3 I think), I found
>that the 'right hand' leaf does not split when it is full and the new
>value
>exceeds the current upper limit: instead a new leaf is added at the
>same
>level and the leaf layer stays 100% packed.
>
>The old chestnut about sequence-based indexes leaving trails of
>half-filled blocks is not true. (Was it ever ? Did anyone every
>prove
>it or was it just part of the oral history that was never tested ?)
>
>
Actually, its what I've been taught in internals courses. They always dealt with internal leaves (not on the far rhs) so I'm not sure if some optimization for sequenced keys was added for the special case or what version it might have been added to.
Now, what might be happening in your test was someone inserted lots of rows in the same transaction. Say you are getting 10 index rows/block and you just added 10 rows. The rows would have been added to the rightmost block. Adding these rows would have caused the block to overflow, hence a new block will be added. Only new rows went onto the new block leaving the old block 100% filled (and the new block as well).
Once I get sufficient time to test this, I'll post the results.
Thomas Kyte
tkyte_at_us.oracle.com
Oracle Government
Bethesda MD
http://govt.us.oracle.com/ -- downloadable utilities
![]() |
![]() |