Optimisation d'une requête SQL avec 12 jointures qui prend 8 secondes
Optimisation d'une requête SQL avec 12 jointures qui prend 8 secondes
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
12 jointures c'est beaucoup. As-tu essayé de décomposer en sous-requêtes temporaires ? Parfois materialiser des résultats intermédiaires aide.
-
sarah_du_62
- Messages : 5
- Inscription : mar. mars 04, 2025 7:25 pm
Re: Optimisation d'une requête SQL avec 12 jointures qui prend 8 secondes
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
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
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 ?