Déclaration et utilisation des index

Déclaration et utilisation des index

OBJECTIF :

 

Le but est de permettre au moteur de base de données de trouver le plan d’exécution optimal afin de pouvoir exécuter sa requête le plus vite possible.

 

Pour se faire, on passe par les dictionnaires Diva afin de créer les indexes qui vont bien.

Il faut ensuite vérifier les différentes requêtes SQL qui sont exécutées par le programme et voir si elles utilisent bien des indexes en adéquation avec les conditions de la requête.

Pour avoir ce résultat, il faut demander à l’outil (Microsoft SQL server management studio, azure data studio, etc) d’afficher le plan d’exécution actuel de la requête et d’aller le vérifier.

 

Il arrive que le plan d’exécution dise de lui-même que la requête pourrait être plus performante et propose un index.
Attention : seule la première proposition d’index est affiché dans le studio, et ce n’est pas forcément la plus intéressante. Il faut vérifier directement dans le fichier XML généré s’il y a d’autres propositions d’index plus performantes.

 

Parfois créer un index n’est pas forcément non plus la bonne solution, il se peut qu’il y ait déjà un index optimisé mais qu’il ne soit pas utilisé. Dans ce cas-là, rajouter une condition where sur le champ manquant pour que l’index soit utilisé permet de régler le problème.

 

Pour vérifier les temps d’exécution d’un programme, la meilleure solution est d’utiliser l’outil xperfSQL et de regarder les temps des différentes requêtes

 

EXEMPLE :

 

La requête SQL suivante a été exécutée avec en demandant le plan d’exécution. Le plan d’exécution affiche l’information selon laquelle la requête serait 99.7% plus rapide avec l’index proposé.

Le temps d’exécution est de 0.43s

image-20240828-142440.png

 

Une fois l’index créé, on voit que le moteur l’utilise et le temps d’exécution passe à 0.003s

 

image-20240828-142548.png