Removing duplicate index columns

Locating duplicate indexes is an important DBA task.

One common misconception by developers is that every predicate in a SQL where clause should be indexed, but this is not true.  Because Oracle supports multi-column indexes, it’s easy to accidently create “duplicate” indexes, indexes that add overhead to DML and do not aid in speeding-up SQL execution.    

Management commonly hires clandestine experts to review the technical ability of a DBA.  One sure-fire way to get fired is to waste computing resources by allowing your database to have duplicate indexes!

Now that we understand how important it is to remove duplicate indexes, let’s look at some common methods for finding indexes that can be safely dropped without effecting SQL execution.  

You can query the dba_ind_columns view to quickly locate indexes with duplicate columns, but the real challenge comes when you need to decide which index to drop:  

See this link below for a method to look for indexes on tables with the same leading column, then for indexes with the same two leading columns.

The below method can be used to find infrequently-used indexes.

In Oracle 10g and beyond, you can accurately count the number of times that an index was invoked by using the STATSPACK or AWR tables.

Read below the techniques I use for locating un-used indexes:

Try Ion for Oracle database trends!

Using the principles of decision support systems technology, BC has developed an important new Oracle tuning tool, Ion for Oracle. Ion quickly isolates the reports on the important optimization issues, separating the wheat from the chaff like no other performance tuning software.

After several years of hard work, Ion for Oracle is finally available for general release. Ion is unlike any other Oracle tool on the market, a tool that encapsulates expert techniques to allow a DBA to quickly visualize important trends and signatures.

Predictive analytics is the key to repairing Oracle problems before they cripple your database, and I created Ion for Oracle to allow any DBA to quickly identify changing workloads and unobtrusive patterns of data access. To try Ion for free, see here: 


Need a Health Check?

Oracle is the world's most complex and robust database and there are hundreds of sub-optimal settings that can cripple your database performance.

Burleson Consulting has a great Oracle health check where we identify all database bottlenecks to ensure that your mission critical system is running at optimal speeds.

Just call 800-766-1884 to schedule your health check.


Need Oracle Training?

The very best Oracle training comes from Burleson Consulting, where you get an on-site visit by an experienced Oracle expert and author. Whether it's one-on-one mentoring or getting a customized on-site Oracle training class, there is no substitute for BC Oracle training. Just call 800-766-1884 for details, and check out our on-site Oracle training catalog at the following link: 


There's Always Room at the Top

Burleson Consulting continues to grow as the Oracle community recognizes that high quality Oracle support and training is a cost effective option in these tough economic times.

If you have distinguished yourself in your Oracle career and are ready to step up and enjoy the rewards of joining the ranks of America's top tier support consultants we would like to hear from you.

Evidence of high achievement as an Oracle professional might include publication of books and articles for the Oracle community, achieving an advanced degree from a competitive university and seeking out hands-on experience with complex databases. See here for details and a full qualifications list: