Précédent   Forum des professionnels en informatique > Bases de données > Firebird > SQL
SQL Forum d'entraide sur le SQL pour Firebird
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/01/2005, 15h20   #1
Membre éprouvé
 
Avatar de WebPac
 
Inscription : mai 2004
Messages : 919
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 919
Points : 410
Points : 410
Par défaut Choix dans les jointures externes

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 ?
WebPac est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/01/2005, 11h54   #2
Membre éclairé
 
Inscription : décembre 2004
Messages : 379
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 379
Points : 304
Points : 304
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.
jean-jacques varvenne est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/01/2005, 12h34   #3
Membre éprouvé
 
Avatar de WebPac
 
Inscription : mai 2004
Messages : 919
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 919
Points : 410
Points : 410
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.
WebPac est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h22.


 
 
 
 
Partenaires

Hébergement Web