|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre éprouvé
![]() Inscription : mai 2004 Messages : 919 ![]() |
Salut tout le monde.
Mon problème est que je ne trouve pas de doc sur le choix de l'ordre des jointures et savoir s'il faut préférer des jointures gauches ou droites dans un soucis d'optimisation de la requête. Par exemple, si on a 4 tables reliées par des jointures externes, dans quel sens faut-il les relier ? Je pose la question dans un cas général et non sur un cas précis. Je sais qu'il faut d'abord mettre les Full jointures puis faire les Left et les Right, mais quelles sont les règles pour optimiser tout ça ? Merci pour votre aide. PS : question subsidiaire qui ne mérite pas un sujet à part entière, j'utilise Firebird, est-il prévu un jour que le renommage des tables soit possible ? |
|
|
00
|
|
|
#2 |
|
Membre éclairé
![]() Inscription : décembre 2004 Messages : 379 ![]() |
gauche ou droite importe peux, la gauche est souvent utilisé (sans parti pris pour un parti politique...)
l'ordre des jointures et par contre plus important, il est préférable de déclarer les plus petites tables d'abord. ne pas oublier de qualifier tous les noms des champs avec un alias par exemple, sans cela, un champ non qualifié sera (le plus souvent) extrait de la dernière table déclarée. d'ailleurs en fb 1.5, cela ne fonctionne plus du tout! a noter qu'un left/right join et plus lent à fonctionner qu'une jointure pure et dure. et pour finir, attention aux index. |
|
|
00
|
|
|
#3 |
|
Membre éprouvé
![]() Inscription : mai 2004 Messages : 919 ![]() |
Salut, finalement, j'ai fini le boulot.
J'ai essayé de faire plus de jointures gauches que de droites car les requêtes étaient plus rapides, enfin à ce que j'ai pu voir. J'ai aussi essayé de commencer par la table étant la plus principale, cad celle qui a le plus de jointure externe sur elle. Ca marche, merci d'avoir répondu. PS : oui j'ai mis pour tous les champs les noms des tables avec par mesure de sécurité et de précision. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com