Bonjour,
Voila je recherche des infos, conseils car je dois effectuer une jointure
entre deux tables A et B d'environ 3 millions d'enregistrement. Cette jointure porte sur 3 champs et le résultat que je souhaite doit contenir au minimum les enregistrements de la table A.
J'ai donc opté pour une vue qui a la définition suivante :
J'effectue une concaténation également dans ma clause where.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT A.gid, A.code_dep, A.nom_com, A.num_parc, A.com_abs, B.surface, B.natdroitprop, B.groupeB.proprio, A.the_geom FROM A LEFT JOIN BON (A.code_dep::text || A.code_com::text) = B.commune AND A.com_abs::text = B.pref_section AND A.num_parc::text = B.num_parc;
Le résultat n'ai pas fameux : impossible de lire le résultat de cette vue. Même en affichant les 100 premiers enregistrement seulement.
Je sollicite tout conseil qui pourrait me permettre de faire cette jointure : la faire en dur en créant une nouvelle table et non en dur (mais c domage car je croyaias que les vues permettaient déviter ça), essayer de faire la jointure sur un seul champ et non sur trois (ce qui pourrait s'envisager mais m'obligerait à repenser le MCD), supprimer la concaténation... En fait je n'arrive pas à savoir ce qui demande de la ressource pour le calcul et ce qui n'en demande pas.
Gd merci d'avance.
Partager