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

Uma coluna de chave primária Sequential Guid deve ser um índice clusterizado?


Primeiro para esclarecer, uma chave primária e um índice clusterizado são 2 coisas separadas e distintas, ou seja, um não está acoplado ao outro (PKs podem ser não clusterizados, índices clusterizados podem ser não-PKs).

Dito isso, acho que você está perguntando mais "Deve um GUID sequencial ser usado como um índice clusterizado". Essa é uma pergunta carregada, mas Kimberly Tripp discutiu isso provavelmente o melhor de todos que eu já vi. Observe que o artigo se refere a um PK, mas dentro do artigo ela se refere a como a consideração se aplica principalmente a uma escolha de índice clusterizado versus um PK.

Supondo que você já tenha decidido usar um GUID como chave de cluster (o que pode ou não ser o caso), o uso de um GUID sequencial provavelmente seria uma escolha superior a um GUID não sequencial, no entanto, há pelo menos 1 cenário em que um GUID não sequencial pode ser preferido (embora um cenário muito raro e muito avançado, em que você teria que entender basicamente seu sistema e servidor SQL tão bem que não tem dúvidas de que isso deve ser usado - teria a ver com hotspots em seu dispositivo de armazenamento e espalhando grandes volumes de gravações em diferentes locais do cluster).