J'ai 4 tables nommées A1, A2, B1, B2.
Pour répondre à une exigence, j'ai deux façons d'écrire des requêtes SQL. La première est la suivante :
(A1 UNION ALL A2) A JOIN (B1 UNION ALL B2) B ON A.id = B.a_id WHERE ...
Et la deuxième est :
(A1 JOIN B1 on A1.id = B1.a_id WHERE ...) UNION ALL (A2 JOIN B2 on A2.id = B2.a_id WHERE ... )
J'ai essayé les deux approches et je me suis rendu compte qu'elles donnent toutes deux le même temps d'exécution et les mêmes plans de requête dans certains cas spécifiques. Mais je ne suis pas sûr qu'elles donnent toujours les mêmes performances ou non.
Ma question est donc de savoir quand la première ou la deuxième est la meilleure en termes de performances ?
En termes de codage, je préfère la première car je peux créer deux vues sur (A1 UNION ALL A2)
ainsi que (B1 UNION ALL B2)
et les traiter comme deux tables.