J'ai créé un index non cluster sur une combinaison de trois colonnes. Dois-je spécifier toutes les trois colonnes dans where condition à utiliser l'index non clusterisé.Utilisation d'un index non clusterisé pour une recherche efficace
1
A
Répondre
1
Afin d'utiliser votre index, vous devez utiliser comme ceci.
Index: Ix_threecols (C1, C2, C3)
1. select c1,c2,c3 from table where c1=val
and c2=val and c3=val
2. select c1,c2,c3 from table where c1=val
and c2=val
3. select c1,c2,c3 from table where c1=val
Votre première colonne la plus à gauche de l'indice doit être utilisé dans la clause where. Veuillez ne pas utiliser (*) dans votre sélection, car cela peut mener à la recherche d'index.
Nous devons vérifier le plan d'exécution pour plus d'analyse à ce sujet.
1
La réponse courte est non.
Si au moins la première colonne de l'index apparaît dans votre clause where
, l'index peut être. Si sera est déjà utilisé par l'optimiseur, mais en supposant que vous n'avez aucun autre index sur les autres colonnes dans la clause where
, il sera probablement utilisé.
Je ne pense pas. Mais pour que cet index soit utilisé, la première colonne doit être dans la clause 'WHERE'. –