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

Les index clusterisés doivent-ils être uniques ?

Ils n'ont pas être unique, mais cela est certainement encouragé.
Je n'ai pas encore rencontré de scénario où je voulais créer un CI sur une colonne non unique.

Que se passe-t-il si vous créez un CI sur une colonne non unique

Cela entraîne-t-il de mauvaises performances ?

Ajouter un unificateur ajoute certainement des frais généraux lors du calcul et du stockage.
Si ces frais généraux seront perceptibles, cela dépend de plusieurs facteurs.

  • Combien de données le tableau contient.
  • Quel est le taux d'insertions ?
  • À quelle fréquence le CI est-il utilisé dans une sélection (quand aucun index de couverture n'existe, presque toujours).

Modifier
comme l'a souligné Remus dans les commentaires, il existe des cas d'utilisation où la création d'un CI non unique serait un choix raisonnable. Le fait que je n'aie pas rencontré l'un de ces scénarios montre simplement mon propre manque d'exposition ou de compétence (choisissez votre choix).