Bonjour à tous,
Je dois optimiser des programmes utilisant une base SQL Server. J'hésite concernant la manière de créer l'index le plus approprié. Dois-je prendre en compte le nombre estimé d'enregistrements pour déterminer l'ordre des clés de l'index ?
Exemple : la table OFA_AFF (ordre de fabrication d'une ligne de commande, regroupant plusieurs sociétés) contient :
IDT_SOC 1
NUM_OFA 2
NUM_CDE 3
NUM_LIG 4
NUM_SEQ
QTE_TOT
...
Les 4 premiers champs sont les clés de la table (index unique non cluster).
IDT_SOC peut avoir une dizaine de valeurs différentes, pour chaque IDT_SOC on a plusieurs milliers de NUM_CDE ayant chacune plusieurs dizaines de NUM_LIG (NUM_CDE commence à 1 pour chaque IDT_SOC, NUM_LIG commence à 1 pour chaque NUM_CDE). Chaque NUM_LIG peut donner lieu à plusieurs NUM_OFA (commence à 1 pour chaque IDT_SOC).
Je dois boucler sur OFA_AFF pour faire la somme de QTE_TOT pour une ligne de commande donnée (donc en fixant les valeurs de IDT_SOC, NUM_CDE et NUM_LIG).
Quel est le meilleur index entre :
- IDT_SOC, NUM_CDE, NUM_LIG, QTE_TOT
- NUM_CDE, NUM_LIG, IDT_SOC, QTE_TOT
Est-ce indifférent ?
Je vous remercie par avance pour vos lumières.
Bon week-end,
Joël
Partager