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

Les index SQL Server incluent-ils la clé primaire ?

Votre collègue confond "clé primaire" avec "clé d'index cluster" (peut-être parce que par défaut un PK créé sur un tas sans spécifier le nonclustered mot-clé deviendra l'index clusterisé de la table).

C'est c'est vrai que sur une table avec un index clusterisé, la valeur de la clé d'index clusterisé sera ajoutée en tant que colonne(s) incluse(s) à tous les index non clusterisés pour agir comme localisateur de ligne. (bien que la ou les colonnes ne soient pas ajoutées deux fois si elles font déjà partie de la définition d'index non clusterisé).

La clé d'index cluster idéale est

  • unique (pour agir en tant que localisateur de ligne, il doit être unique - SQL Server ajoutera un unificateur s'il ne l'est pas)
  • étroit (tel qu'il est reproduit dans tous les index non clusterisés)
  • statique (évite d'avoir à mettre à jour la valeur à plusieurs endroits différents)
  • en constante augmentation