• What Version of SQL?

    1. Depends - table and index. It would be best to do it during maintenance in many cases.

    3. There is downside to adding an index while the table is being accessed - locking may occur. Depending on the nature of the table and the index being created, you could render the app inaccessible during the index creation.

    2. Downside to adding the index will be seen in inserts and updates. But this needs to be weighed against how often the table is accessed just for selects/ reads.

    4. Depends - sometimes it may be transparent, sometimes it could require retesting the app.

    I am using sql server 2005. Does that make any difference to the answers you supplied?

    Thanks

    The same logic will apply for all versions of SQL Server. Personally, I'd not add the indexes to production while users are using the database.

    Do you have access to a development or test server? It would be far better to test and analyze your index changes there - if you can look at the execution plans, IO stats and general resource usage before and after the new index, then you'll be able to deploy to the production environment safer in the knowledge that your new index is beneficial to the users.

    Good luck!