Bonjour,
J'ai un souci d'optimisation (et de correction je pense) d'une requête assez basique à priori de jointure de 6 tables avec aggrégation de 100 variables environ, avec pour l'instant le code suivant :
Ma table t0 comporte près de 3000 lignes, et mes tables t1 à t6 près de 40000 lignes. Ce que je souhaite est aggréger à partir de ces tables t1 à t6 près de 100 variables "varxx", sur la clé de jointure ID présente dans t0 et dans chacune des tables t1 à t6.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 SELECT t0.ID, SUM(t1.var11), SUM(t1.var12), SUM(t1.var13), SUM(t2.var21), ... , SUM(t6.var64) INTO tabResult FROM (((((t0 LEFT JOIN t1 ON t0.ID=t1.ID) LEFT JOIN t2 ON t0.ID=t2.ID) LEFT JOIN t3 ON t0.ID=t3.ID) LEFT JOIN t4 ON t0.ID=t4.ID) LEFT JOIN t5 ON t0.ID=t5.ID) LEFT JOIN t6 ON t0.ID=t6.ID GROUP BY t0.ID
Lorsque je décompose cette requête en 6 requêtes différentes (création d'une table résultat intermédiaire 1 avec les variables de t1, puis nouvelle jointure pour récupérer les variables de t1 et t2,....) cela va assez vite (moins de 10 minutes), mais je pense qu'il doit y avoir une solution beaucoup plus "propre" en une seule requête ? le souci est que le bout de code ci-dessus ne se termine pas au bout de 3/4h... ?
Partager