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

Os índices do SQL Server incluem chave primária?


Seu colega de trabalho está confundindo "Chave primária" com "chave de índice clusterizado" (possivelmente porque, por padrão, um PK criado em um heap sem especificar o nonclustered palavra-chave se tornará o índice clusterizado da tabela).

É é verdadeiro que em uma tabela com um índice clusterizado o valor da chave do índice clusterizado será adicionado como coluna(s) incluída(s) a todos os índices não clusterizados para atuar como o localizador de linha. (embora as colunas não sejam adicionadas duas vezes se já fizerem parte da definição de índice não clusterizado).

A chave de índice clusterizada ideal é
  • único (Para atuar como um localizador de linha, ele deve ser exclusivo - o SQL Server adicionará um unificador se não for)
  • estreito (como é reproduzido em todos os índices não clusterizados)
  • estático (evite ter que atualizar o valor em vários lugares diferentes)
  • cada vez mais