Não, o SQL Server não cria automaticamente índices não clusterizados.
Um índice clusterizado é criado automaticamente com base na chave primária, a menos que seu
CREATE TABLE
declaração diz o contrário. Sim, eu recomendaria indexar colunas de chave estrangeira porque elas são as mais prováveis de serem JOIN'd/pesquisadas usando
IN
, EXISTS
, etc. No entanto, esteja ciente de que um índice em um conjunto de valores de baixa cardinalidade (gênero, por exemplo) será relativamente inútil porque não há diferença suficiente nos valores. A desvantagem com todos os índices é que eles podem acelerar a recuperação de dados, mas retardam a inserção/atualização/exclusão de dados. Há também manutenção que precisa ser realizada porque eles podem ficar fragmentados (como discos rígidos), mas também podem não ser usados ao longo do tempo. Os índices também ocupam espaço em disco.