Avoid Unnecessary or Duplicate Indexes with the AutoIndex Setting
Provided by: Luke Chung, President of FMS, Inc.
Microsoft Access Automatically Creates Secondary
We all want speed and faster performance in Microsoft
Access. As tables get larger, secondary indexes can help speedup queries,
searches, and links between tables.
By default, Microsoft Access has a setting that
automatically adds secondary indexes on fields based on their name.
Unfortunately, this can create additional problems.
By default, Access automatically adds a secondary index to
fields that begin or end with these names:
These are set in the options AutoIndex on Import/Create
separated by semicolons:
Microsoft Access 2010 and 2007
For Microsoft Access 2010 and 2007, this option is under Access
Options, Object Designers:
Microsoft Access 2003 and Earlier
For Microsoft Access versions before Access 2007, the
setting is on the Tables/Queries tab under the Access Tools/Options menu:
Why This is a Problem
Adding too many indexes to a table and duplicating indexes
on the same field can hurt performance and increase your database size.
Not every field name that begins or ends with the
default values should have a secondary index.
Some fields have only a few unique values, so secondary
indexes on those fields are not very helpful
Some fields that aren't named that way may need
secondary indexes, so using the default setting is not a wise solution
since thought should be put into this.
Some secondary indexes may involve more than one field,
so single field indexes may not be helpful.
Significant Problems on Table Import
When you import a table with these settings, the indexes are
added to your new table automatically. That may be fine for a brand new
table, but if you are importing a table to replace an existing table (from a
backup) or creating a new database by importing all the tables from an
existing database, a whole set of new secondary indexes may be added
unnecessarily -- essentially undoing the work you may have done to determine
which fields shouldn't have indexes.
If you understand when to add secondary indexes on your
tables, you should set the AutoIndex on Import/Create option to nothing.
This lets you control where and when indexes are added, and eliminates it
from happening by chance:
If you have our
Total Access Analyzer
program, this setting is one of the ~300 issues detected when your database
is documented. Learn more about how Total Access Analyzer can help you
Microsoft Access applications.