No, SQL Server no crea automáticamente índices no agrupados.
Un índice agrupado se crea automáticamente en función de la clave principal, a menos que su CREATE TABLE
declaración dice lo contrario.
Sí, recomendaría indexar las columnas de clave externa porque es más probable que se JOIN'd/buscar usando IN
, EXISTS
, etc. Sin embargo, tenga en cuenta que un índice en un conjunto de valores de baja cardinalidad (género, por ejemplo) será relativamente inútil porque no hay suficiente diferencia en los valores.
La desventaja de todos los índices es que pueden acelerar la recuperación de datos, pero ralentizar la inserción/actualización/eliminación de datos. También hay mantenimiento que debe realizarse porque pueden fragmentarse (como los discos duros) pero también es posible que no se usen con el tiempo. Los índices también ocupan espacio en el disco.