Analysons à présent, la manière dont des index différents peuvent améliorer les performances des requêtes nécessitant des données triées. La requête suivante récupère tous les enregistrements des commandes ayant la valeur customerid égale à WHITC et utilise la clause ORDER BY pour trier les résultats en fonction de la colonne
Utilisation des index pour l’optimisation des tris
orderdate :
Use Northwind
select orderid, customerid, orderdate
from orders
where customerid = ‘WHITC’
order by orderdate
Pour créer un index non clusterisé portant sur la colonne customerid, utilisez
l’instruction suivante :
create index i_customerid on orders (customerid)
L’écran 3illustre le plan d’exécution des requêtes après la création d’un index
non clusterisé sur customerid. Le plan d’exécution des requêtes indique que l’optimiseur
de requêtes accède en premier lieu à l’index existant, puis trie l’ensemble des
enregistrements formant le résultat. Est-il possible d’améliorer les performances
des requêtes en créant un second index non clusterisé sur la colonne triée ? Ou
est-il préférable de définir un index composite (index conçu à partir de plusieurs
colonnes) au lieu de deux index distincts ? Pour trouver la réponse, considérons
deux autres exemples de requête.
L’instruction suivante crée un second index non clusterisé distinct sur la colonne
triée orderdate :
create index i_orderdate on orders (orderdate)
L’écran 4 présente le plan d’exécution des requêtes après avoir ajouté le second
index distinct ; on peut constater qu’il n’existe aucune différence entre ce plan
d’exécution et celui de la requête exécutée avec un seul index de l’Ecran 3.
Cependant, la création d’un index non clusterisé composite pour la requête offre
une amélioration significative des performances. Pour créer un index composite
basé sur customerid et orderdate, exécutez l’instruction suivante :
create index i_custom_order on orders (customerid, orderdate)
L’écran 5 illustre le plan d’exécution de la requête après avoir créé l’index
composite. Ce plan d’exécution présente deux avantages sur les plans précédents.
Premièrement, la requête effectue deux opérations au lieu de trois pour obtenir
ses résultats (l’instruction SELECT ne compte pas comme une opération). Ensuite,
l’optimiseur n’utilise pas le tri qui est, généralement, une opération coûteuse.
L’optimiseur n’a pas besoin du tri car l’index composite i_custom_order offre
un accès aux enregistrements répondant au critère de la requête (customerid =
‘WHITC’) et trie l’ensemble des résultats en fonction de la colonne orderdate.
Téléchargez cette ressource
Microsoft 365 Tenant Resilience
Face aux failles de résilience des tenants M365 (configurations, privilèges, sauvegarde). Découvrez 5 piliers pour durcir, segmenter et surveiller vos environnements afin de limiter l’impact des attaques. Prioriser vos chantiers cyber et améliorer la résilience de vos tenants Microsoft 365.
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- Les fuites de données explosent en France, désormais pays le plus touché d’Europe
- L’IA accélère les attaques et expose les identités non gouvernées
- Identités machines et supply chain : l’erreur stratégique des entreprises en cybersécurité
- WordPress publie une mise à jour de sécurité d’urgence pour corriger wp2shell
Articles les + lus
Microsoft dévoile MAI-Thinking-1 : un modèle de raisonnement « enterprise-grade » en preview publique
Couchbase lance AI Data Plane pour industrialiser l’IA agentique
Windows 11 : Microsoft généralise le point-in-time restore pour accélérer la remise en service des PC
Computex 2026 : 5 signaux forts à retenir
La chaîne d’approvisionnement, point de rupture récurent du SI
À la une de la chaîne Tech
- Microsoft dévoile MAI-Thinking-1 : un modèle de raisonnement « enterprise-grade » en preview publique
- Couchbase lance AI Data Plane pour industrialiser l’IA agentique
- Windows 11 : Microsoft généralise le point-in-time restore pour accélérer la remise en service des PC
- Computex 2026 : 5 signaux forts à retenir
- La chaîne d’approvisionnement, point de rupture récurent du SI
