Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

O SQL Server cria índice não clusterizado em todas as colunas de uma tabela por padrão


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.