Pergunta

Eu li as várias perguntas / respostas aqui que basicamente indicam que ter um índice agrupado em uma coluna uniqueidentifier é uma má escolha por motivos de desempenho. Independentemente disso, eu preciso usar um uniqueidentifier como minha chave primária, e eu não quero usar newsequentialid () porque os valores gerados são muito semelhantes entre si (Eu preciso de mais IDs aleatórios para que os usuários não podem [razoavelmente] 'palpite' outra ID).

Então, qual é a melhor maneira de indexar este PK? Mesmo que um índice agrupado na esta coluna não é o ideal, é melhor do que um índice "única, não agrupado"?

Estou usando o SQL Server 2005.

Foi útil?

Solução

Em primeiro lugar, se você está tentando usar NEWID() para alcançar aleatoriedade (mais do que apenas olhar aleatório), você está em apuros.

É geralmente inferior a escolha ideal porque outros índices irá referenciar a chave índice agrupado e uma chave de índice longo agrupado irá degradar o desempenho de todos os índices. Você poderia criar uma coluna IDENTITY inteiro e fazer com que o índice de cluster e apenas criar um índice não agrupado exclusivo na coluna uniqueidentifier.

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