Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Une colonne de clé primaire Sequential Guid doit-elle être un index cluster ?

Tout d'abord pour clarifier, une clé primaire et un index clusterisé sont 2 choses séparées et distinctes, c'est-à-dire que l'une n'est pas couplée à l'autre (les PK peuvent être non-cluster, les index clusterisés peuvent être non-PK).

Cela étant donné, je pense que vous demandez plus "Devez-vous utiliser un GUID séquentiel comme index clusterisé". C'est une question chargée, mais Kimberly Tripp en a parlé probablement le meilleur de tous ceux que j'ai vus. Notez que l'article fait référence à un PK, mais à l'intérieur de l'article, elle fait référence à la façon dont la considération s'applique principalement à un choix d'index clusterisé par rapport à un PK.

En supposant que vous avez déjà décidé d'utiliser un GUID comme clé de cluster (ce qui peut ou non être le cas), l'utilisation d'un GUID séquentiel serait probablement un choix supérieur à un GUID non séquentiel, mais il y a au moins 1 scénario dans lequel un GUID non séquentiel peut être préféré (bien qu'il s'agisse d'un scénario très rare et très avancé dans lequel vous devez si bien comprendre votre système et votre serveur SQL que vous ne doutez pas que cela devrait être utilisé - aurait à voir avec hotspots sur votre périphérique de stockage et en répartissant de grands volumes d'écritures sur différents emplacements du cluster).