in reply to Autogenerate SQL Indexes?

Howdy!

Danger! Danger!

Before you go adding indexes willy-nilly, you have to have some understanding of the data and how it is being used. Indexes do not automatically give you increased performance. In fact, in many cases, indexes can slow things down.

Is the database transaction heavy or no? Having many indexes in a database that has heavy insert/update/delete activity can really bit you, as those indexes must be maintained in parallel with the table changes.

On the other hand, if the data is relatively static, used mostly for queries, carefully crafted indexes can make a dramatic improvement in performance. Poorly crafted indexes could do little but consume space.

Another factor you must keep in mind is how the query optimizer works for the DBMS in question. Indexes need to be crafted (there's that word again) with that in mind, if they are to be effective.

Proper indexing is something of an art; it's one of those things that help keep database administrators occupied. As access patterns change indexes may need changing. I'll be bold and claim that you aren't going to find the general solution you seek. Sorry about that.

yours,
Michael

Replies are listed 'Best First'.
Re^2: Autogenerate SQL Indexes?
by swaroop.m (Monk) on Aug 24, 2004 at 14:33 UTC
    I agree with herveus. Indexes always doesnot suit all tables in the database (DB).
    Since you said you have the log file at hand .
    Find out the tables that have large amount of data , in here if the data is only inserted or queried , you can go ahead and index them .If update/Delete happen too often indexing would not be such a great thing as the indexes are built each time you update the DB.
    indexing is a tricky thing , you have to observe how ur DB behaves in production environment . indexing should be carried out only (querying)fetching is more.
    Regards, Swaroop