Page 1 sur 1

Optimisation requête SQL : 12 secondes → 0.2s mais je comprends pas pourquoi

Publié : lun. déc. 08, 2025 11:01 am
par toto_tech
Bonjour les experts ! J'ai une requête sur une table clients (3M lignes) qui joignait 5 tables. Elle prenait 12s. J'ai juste réordonné les JOIN et maintenant c'est 0.2s... Mais EXPLAIN ne m'aide pas à comprendre. Une idée ?

Re: Optimisation requête SQL : 12 secondes → 0.2s mais je comprends pas pourquoi

Publié : lun. déc. 08, 2025 12:01 pm
par guillaume_oc
Classique ! L'optimiseur de requêtes est très sensible à l'ordre des JOINs. T'as probablement mis la table la plus restrictive en premier sans t'en rendre compte.

Re: Optimisation requête SQL : 12 secondes → 0.2s mais je comprends pas pourquoi

Publié : lun. déc. 08, 2025 3:01 pm
par toto31
Essaie avec EXPLAIN ANALYZE pour voir les différences d'exécution. Et vérifie tes stats de tables, peut-être qu'elles étaient obsolètes avant ta modif.

Re: Optimisation requête SQL : 12 secondes → 0.2s mais je comprends pas pourquoi

Publié : lun. déc. 08, 2025 9:01 pm
par toto_tech
Merci ! Effectivement ANALYZE montre que le planner choisit maintenant un hash join au lieu d'un nested loop. Mais pourquoi cette décision ?

Re: Optimisation requête SQL : 12 secondes → 0.2s mais je comprends pas pourquoi

Publié : mar. déc. 09, 2025 1:01 am
par damien_du_34
Ça dépend des cardinalités estimées. Si t'as changé l'ordre, le planner pense peut-être qu'il y a moins de lignes à traiter en premier. Fais un VACUUM ANALYZE pour être sûr.