Effect of an index on update statements where update column is not in an index

For a relatively fast modern system the addition of a single index to an OLTP table will probably be virtually undetectable from a performance standpoint for the vast majority of systems. That said, you should not create needless indexes, and you probably should not create single-column indexes for every column in a table.

You are correct in the assumption that for many queries the presence of useful indexes will result in a very noticeable speed improvement.

Although your question appears to be around performance, there are several other potential issues around adding indexes, including but not limited to:

  1. Time required to create the index may result in blocking while the index is added to the table. The lock is very short lived, and most likely won't create a big problem.

  2. Index changes result in execution plans being invalidated for any plans that reference the underlying table. When those execution plans are recompiled, performance may change negatively for some queries.

  3. Index modifications may result in queries returning errors where none were previously returned. Take the case of a filtered index that was used to return dates contained in a varchar field; if the filter eliminated any rows that weren't dates, and that filter is subsequently changed, queries that relied upon that index may now fail when attempting to convert non-date data.

  4. A new index may cause the order of execution to change resulting in possible deadlocks occurring where non occurred before.


You are correct that updating an non-indexed column will not cause changes to the indexes. In a simple case, there would also be no overall impact on the table.

If a query can use the Index to look up data, it may speed up the lookup, but the exact behavior (depending on your SQL brand) may differ from other brands of SQL. (I use Microsoft SQL Server primarily.)

Of course, updating a column with a significantly greater volume of data could cause some moving of rows to different pages, et cetera.