Pergunta

Eu tenho uma tabela com uma coluna de identidade como chave primária (uma coluna de identificação clássica).

SQL Server crie automaticamente um índice em cluster para essa chave primária.

minha pergunta é:

  • Posso ter um único composto de índice cluster único com mais colunas?

Se sim, como posso descartar o índice de cluster padrão e recriar um novo com este Atributos.

Obrigado pelo seu suporte

Foi útil?

Solução

Sim, você só pode ter um único índice cluster por tabela - os dados são fisicamente organizados por esse índice, para que você não tenha mais de um.

Eu não aconselho para usar um índice em cluster compósito. Por quê? Porque o índice agrupado deve ser sempre:

  • o mais pequeno possível - int com 4 byte é perfeito
  • estável - nunca mude, então você não tem atualizações ondulantes através de todos os seus índices
  • Único - caso contrário, o SQL Server terá que "uniquetar" suas entradas com valores artificiais de 4 bytes
  • Ótimo seria: cada vez crescente

INT identidade é perfeita como um índice agrupado - eu aconselho você a mantê-lo dessa maneira.

A coluna do índice cluster (ou conjunto de colunas) também é adicionada a cada entrada de cada um e cada índice não cluster nessa mesma tabela - por isso, se você fizer seu índice clusterizado grande, 20, 50 bytes ou mais, você começa para desperdiçar muito espaço - no disco e na memória do seu servidor, o que geralmente degrada o desempenho do sistema.

Leia tudo sobre os índices agrupados e o que eles devem ser para ser bons índices agrupados aqui:

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top