Pergunta

Eu sei que as chaves primárias com base em Guids não têm o melhor desempenho (devido à fragmentação), mas eles são globalmente únicos e permitir cenários de replicação.

identificadores integrais, por outro lado, tem maior desempenho ao custo de escalabilidade.

Mas em que cenários que alguém iria querer usar uniqueidentifier seqüencial como a chave primária? Eu acho, que ele bate o propósito de GUID, mas ainda vejo mencionar das sequentals agora e depois.

O que eu sinto falta aqui?

Foi útil?

Solução

O que é comumente conhecido como um guids sequenciais em SQL Server 2005 (gerada por NEWSEQUENTIALID ()) são uma tentativa de superar os problemas com guids normais.

Eles está ainda universalmente exclusivo, mas também estão sempre ascendente. Isso significa que eles podem ser usados ??para a replicação e tem muito melhor inserção desempenho do que GUIDs tradicionais.

A única desvantagem é que eles não são "seguro" porque é possível adivinhar a próxima guid seqüencial.

http://msdn.microsoft.com/en-us/library /ms189786.aspx

Outras dicas

Usando GUIDs garante sequenciais que você está sempre usando um valor maior que o último valor. Para um campo indexado isso é importante. Em vez de inserir aleatoriamente em todo o espectro, você está sempre inserindo no final da última "página" de dados, resultando em divisões de página drasticamente reduzidos, especialmente no caso em que o seu uniqueidentifier coluna também é o seu índice de cluster.

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