2017-10-09 9 views
1

J'ai l'index unique suivant.La colonne principale d'un index unique fait-elle une différence?

CREATE UNIQUE NONCLUSTERED INDEX [IX_Unique_Company_Owners] ON [dbo].[Company_Owners] 
(
    [Company_Entity_ID_FK] ASC, 
    [Person_Entity_ID_FK] ASC 
) 

Est-ce que l'ordre des colonnes fait la différence? Je sais que c'est le cas pour les index non uniques. Mais n'était pas sûr si SQL Server modifie en quelque sorte les index uniques dans les coulisses.

Notez que les deux colonnes ne sont pas nulles.

Répondre

2

L'ordre des colonnes a le même effet sur les index UNIQUE que sur les non-uniques. La seule façon dont SQL Server traite les index UNIQUE différemment est de vérifier l'unicité lorsque des lignes sont insérées ou mises à jour. Pour les besoins des requêtes SELECT, les index uniques et non uniques sont traités de la même manière.

1

Cela fait absolument une différence.

Même différence que lorsque vous commandez un annuaire téléphonique, par exemple, last_name, puis first_name vs first_name puis last_name.

Si vous êtes toujours interrogé par les deux valeurs, cela ne ferait pas de réelle différence, mais si vous interrogez souvent par simple personne, cet index ne serait pas très utile puisqu'il est deuxième dans la commande.