Assume an index on employee number. The number is assigned sequentially, and as such, the rightmost index leaf block would always be used. A possible hot block. A reverse key index can avoid this. Also, assume when an employee retires or quits, the record is deleted. But the space freed within the index leaf block will never be used (unless of course, all entries from that leaf block are deleted). A reverse key index can help you avoid these "holes" or otherwise skewed indexes, and help the index become more "balanced", but has the pitfall that is mentioned.
Raj [EMAIL PROTECTED] disys.com To: Multiple recipients of list ORACLE-L <[EMAIL PROTECTED]> Sent by: cc: [EMAIL PROTECTED] Subject: RE: use of reverse key index,cost based optimizer om 05/30/2003 10:44 PM Please respond to ORACLE-L Dennis, My understanding of B*tree is that it is always balanced. Monotonically increasing keys will create a right hand index, but nonetheless balanced. If wrong, I'm sure to be corrected. :) Also, I don't believe the reverse key index will help queries any. I'm guessing that under normal circumstances it would increase the number of index blocks that needed to be cached. In the case of a range scan, it would definitely not perform as well, and increase the likelihood of a FFS or FTS, depending on the queries normally used in a system. The primary purpose of these was to reduce block pings on OPS IIRC, which would also reduce block contention on inserts as you said. Jared DENNIS WILLIAMS <[EMAIL PROTECTED]> Sent by: [EMAIL PROTECTED] 05/30/2003 12:09 PM Please respond to ORACLE-L To: Multiple recipients of list ORACLE-L <[EMAIL PROTECTED]> cc: Subject: RE: use of reverse key index,cost based optimizer helpdesk I don't see where anyone responded. If you look up reverse key index in the documentation, it says something about if you have a column where most of the values have leading values that are close. Reverse key will help the btree of the index be more balanced. That helps on queries. And on inserts you aren't continually hitting the same block, but spreading the inserts. Oracle has two SQL optimizers, rule-based and cost based. The cost based is more sophisticated. You first populate statistics on your tables. When creating an execution plan for your SQL the CBO will consider those statistics. Does that answer your questions? Dennis Williams DBA, 80%OCP, 100% DBA Lifetouch, Inc. [EMAIL PROTECTED] -----Original Message----- Sent: Friday, May 30, 2003 1:25 AM To: Multiple recipients of list ORACLE-L hai gurus please tell use of using reverse key index and what exactly cost based optimizer thanks in advance manjunath -- Please see the official ORACLE-L FAQ: http://www.orafaq.net -- Author: INET: [EMAIL PROTECTED] Fat City Network Services -- 858-538-5051 http://www.fatcity.com San Diego, California -- Mailing list and web hosting services --------------------------------------------------------------------- To REMOVE yourself from this mailing list, send an E-Mail message to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in the message BODY, include a line containing: UNSUB ORACLE-L (or the name of mailing list you want to be removed from). You may also send the HELP command for other information (like subscribing).