Oracle FAQ Your Portal to the Oracle Knowledge Grid

Home -> Community -> Mailing Lists -> Oracle-L -> RE: When to rebuild the index?

RE: When to rebuild the index?

From: Allen, Brandon <>
Date: Tue, 6 Sep 2005 10:07:58 -0700
Message-ID: <04DDF147ED3A0D42B48A48A18D574C4502361538@NT15.oneneck.corp>

Correct, if you are only doing selects on the table/index, the index should never need to be rebuilt, regardless of how many columns are indexed or how often you select them. Splits typically only happen during inserts, and sometimes during updates. I'd highly recommend you read some background info from the Oracle concepts guide on b-tree index structure, maintenance, etc. - then reread the index internals presentation for more detail. Start here:    

-----Original Message-----

From: Chirag DBA [] Sent: Tuesday, September 06, 2005 9:42 AM To: Allen, Brandon
Cc: Oracle-L Freelists
Subject: Re: When to rebuild the index?

This is a very good document Brandon. Thank you.  

But if there is no DML on the table but still index will be used on different criterias.  

Think that there is an index on multiple columns.  

Still the index wont get splitted for SELECT statements. This is gonna use an index heavily.  

If it is so then on large DW databases where mainly there is a report generation is done, never need to rebuild the indexes?  

I am bit confused abt this.  

Regards - Chirag  

On 9/6/05, Allen, Brandon <> wrote:

No, a select cannot cause an index split, and index splits do not necessarily warrant rebuilding anyway. Check out the following paper for an excellent of discussion of when (very rarely) and why to rebuild indexes, or do a search on <> : <> oracle _index_internals.pdf  

You have to run ANALYZE INDEX index_name VALIDATE STRUCTURE; to populate the index_stats view - and beware that this analyze will require a lock so you may want to run it after hours.  


-----Original Message-----

From: <> [mailto:]On Behalf Of Chirag DBA Sent: Tuesday, September 06, 2005 9:04 AM To: Chirag DBA
Cc: Oracle-L Freelists
Subject: When to rebuild the index?

Hi Guys,  

I think that even select statement will make the index split and require the rebuilding. Am I true? I think I am.  

And there is a view called index_stats with column height.  

I have read that when the value of this column is >= 4, u need to rebuild the indexes. But after analyzing the particular schema, I don see any value to get populated in this view.  

I can see last analyzed value changed in dba_indexes when I analyze the schema with DBMS_STATS. ANALYZE_SCHEMA package.  

Why this is so?  

Regards - Chirag  

Privileged/Confidential Information may be contained in this message or attachments hereto. Please advise immediately if you or your employer do not consent to Internet email for messages of this kind. Opinions, conclusions and other information in this message that do not relate to the official business of this company shall be understood as neither given nor endorsed by it.

Received on Tue Sep 06 2005 - 12:08:30 CDT

Original text of this message