Types de requêtes et index
Lorsque vous déterminez s'il convient de créer un index sur une colonne, évaluez comment la colonne est utilisée dans les requêtes. Le tableau suivant décrit les types de requêtes pour lesquels des index sont utiles.
[!REMARQUE]
Les exemples du tableau reposent sur l'exemple de base de données AdventureWorks. Lorsque vous exécutez les exemples dans SQL Server Management Studio, vous pouvez consulter les index qui sont sélectionnés par l'optimiseur de requête en affichant le plan d'exécution réel. Pour plus d'informations, consultez Procédure : afficher un plan d'exécution réel.
Requête dans laquelle le prédicat de colonne est l'un d'eux |
Description de la requête et exemple |
Index à envisager |
---|---|---|
Concordance exacte pour une valeur spécifique |
Recherche une concordance exacte dans laquelle la requête utilise la clause WHERE pour spécifier une entrée de colonne avec une valeur spécifique. Exemple :
|
Index cluster ou non-cluster sur la colonne EmployeeID. |
Concordance exacte pour une valeur dans une liste IN (x,y,z) |
Recherche une concordance exacte pour une valeur dans une liste de valeurs spécifiée. Exemple :
|
Index cluster ou non-cluster sur la colonne EmployeeID. |
Plage de valeurs |
Recherche une plage de valeurs dans laquelle la requête spécifie une entrée possédant une valeur comprise entre deux valeurs. Exemple :
ou
|
Index cluster ou non-cluster sur la colonne ProductModelID. |
Jointure entre des tables |
Recherche des lignes dans une table correspondant à une ligne dans une autre table en fonction d'un prédicat de jointure. Exemple :
|
Index cluster ou non-cluster sur les colonnes ProductID et ProductAssemblyID. |
LIKE, comparaison |
Recherche des lignes correspondantes qui commencent par une chaîne de caractères spécifique telle que « abc% ». Exemple :
|
Index cluster ou non-cluster sur la colonne Name. |
Trié ou agrégé |
Nécessite un ordre de tri implicite ou explicite ou une agrégation (GROUP BY). Exemple :
|
Index cluster ou non-cluster sur la colonne triée ou agrégée. Pour le tri, envisagez de spécifier l'ordre ASC ou DESC de la colonne. |
Contrainte PRIMARY KEY ou UNIQUE |
Recherche les doublons des nouvelles valeurs de clé d'index au cours d'opérations d'insertion et de mise à jour, pour garantir l'intégrité des contraintes PRIMARY KEY et UNIQUE. Exemple :
|
Index cluster ou non-cluster sur les colonnes définies dans la contrainte. |
Opération UPDATE ou DELETE dans une relation PRIMARY KEY/FOREIGN KEY |
Recherche des lignes dans une opération de mise à jour ou de suppression dans laquelle la colonne fait partie d'une relation PRIMARY KEY/FOREIGN KEY, avec ou sans l'option CASCADE. |
Index cluster ou non-cluster sur la colonne de clé étrangère. |
La colonne est dans la liste de sélection mais pas dans le prédicat. |
Contient une ou plusieurs colonnes dans la liste de sélection qui ne sont pas utilisées pour les recherches. Exemple :
|
Index non-cluster avec FileName spécifié dans la clause INCLUDE. |