Page 1 sur 1
Optimisation d'une requête SQL avec 12 jointures qui prend 8 secondes
Publié : jeu. oct. 17, 2024 12:51 am
par yanis1964
J'ai une requête de reporting qui joint 12 tables et prend 8 secondes à s'exécuter. EXPLAIN montre qu'elle fait des scans complets. Des idées pour l'optimiser ?
Re: Optimisation d'une requête SQL avec 12 jointures qui prend 8 secondes
Publié : jeu. oct. 17, 2024 2:51 am
par le_zed38
12 jointures c'est beaucoup. As-tu essayé de décomposer en sous-requêtes temporaires ? Parfois materialiser des résultats intermédiaires aide.
Re: Optimisation d'une requête SQL avec 12 jointures qui prend 8 secondes
Publié : jeu. oct. 17, 2024 3:51 am
par sarah_du_62
Vérifie aussi tes index composites. Souvent sur ce genre de requêtes, un index couvrant sur 2-3 colonnes fréquemment jointes fait des miracles.
Re: Optimisation d'une requête SQL avec 12 jointures qui prend 8 secondes
Publié : jeu. oct. 17, 2024 8:51 am
par yanis1964
J'ai déjà des index sur toutes les clés de jointure. Par contre je n'ai pas essayé les sous-requêtes temporaires. Vous pensez à des CTE (WITH) ?
Re: Optimisation d'une requête SQL avec 12 jointures qui prend 8 secondes
Publié : jeu. oct. 17, 2024 4:51 pm
par le_zed38
Oui exactement. Avec PostgreSQL tu peux même utiliser MATERIALIZED dans les CTE. Sinon, as-tu regardé si tu peux pré-agréger certaines données ?