Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> Re: 10gR1 new feature: "Enhanced Bitmap Index Performance"

Re: 10gR1 new feature: "Enhanced Bitmap Index Performance"

From: ErikYkema <erik.ykema_at_gmail.com>
Date: 18 Mar 2007 13:14:20 -0700
Message-ID: <1174248860.563460.51960@e65g2000hsc.googlegroups.com>


On Mar 16, 11:52 pm, "Jonathan Lewis" <jonat..._at_jlcomp.demon.co.uk> wrote:
> "ErikYkema" <erik.yk..._at_gmail.com> wrote in message
>
> news:1174049969.445437.55170_at_e65g2000hsc.googlegroups.com...
>
>
>
> > On Mar 16, 7:55 am, "Jonathan Lewis" <jonat..._at_jlcomp.demon.co.uk>
> > wrote:
> >> One of the points on the following blog entry answers your
> >> question. The index does not acquire a huge trail of "old"
> >> blocks as it used to with small updates before 10g.
>
> >> http://jonathanlewis.wordpress.com/2006/12/19/mything-in-action/
>
> >> --
> >> Regards
>
> >> Jonathan Lewis
>
> > Thanks Jonathan.
>
> > Another statement that puzzles me (http://download-west.oracle.com/
> > docs/cd/B10501_01/server.920/a96533/data_acc.htm#2432)
> > "Index maintenance is deferred until the end of each DML
> > operation. ... For example, when you insert 1000 rows, the inserted
> > rows are placed into a sort buffer and then the updates of all 1000
> > index entries are batched. (This is why SORT_AREA_SIZE must be set
> > properly for good performance with inserts and updates on bitmap
> > indexes.) Thus, each bitmap segment is updated only once in each DML
> > operation, even if more than one row in that segment changes."
>
> > Does this mean that there is no reason at all to set my BMIs to
> > unusable and rebuild them afterwards, if I am using bulk operations?
> > (Bulk meaning direct path inserts and/or?? forall based pl/sql bulk
> > inserts?)
>
> > Regards, Erik
>
> You may find that you can do this fairly safely
> with some bitmap indexes, but not with others.
> It depends on the number of rows in the table,
> the number of rows per value, the pattern of
> distribution of values, and the fraction of data
> that appears in each bulk load.
>
> If you do try it, you may want to set pctfree on the
> indexes to 67%, as this can avoid some problems of
> block splits and index growth - which can still be
> fairly heavy even with bulk loads.
>
> A compromise may be viable - load daily without
> dropping, but drop and rebuild once per week.
>
> You may also find that some indexes benefit from a
> coalesce after load.
>
> --
> Regards
>
> Jonathan Lewishttp://jonathanlewis.wordpress.com
>
> Author: Cost Based Oracle: Fundamentalshttp://www.jlcomp.demon.co.uk/cbo_book/ind_book.html
>
> The Co-operative Oracle Users' FAQhttp://www.jlcomp.demon.co.uk/faq/ind_faq.html

Thank you very much again Jonathan for sharing your knowledge! The dry and general text of the manual has become more meaningful. Regards, Erik Received on Sun Mar 18 2007 - 15:14:20 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US