Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bonjour,
Mon App QV actuelle ramène 4 grosses tables. La première est ma table cible. Les trois autres me permettent de catégoriser les personnes présentent dans la 1ère (sexe, age, lieu d'habitation,...).
Schéma :
Table A : table cible population (IDENTIFIANT, ...)
Table B : table des appartenances géographiques du client (IDENTIFIANT, adresse, CP, VILLE, DEP,...)
Table C : table des caractéristiques individuelles (IDENTIFIANT, sexe, âge, profession,...)
Table D : table des contrats souscrits par le client (IDENTIFIANT, Numéro de contrat,...)
Actuellement, toutes les lignes des trois tables sont ramenées (les personnes présentes dans la 1ère table mais aussi ceux qui ne le sont pas, environ 500 000 lignes pour chacune de ces tables) et cela pèse lourd quand je dois recharger la donnée.
Est-ce qu'en utilisant la propriété "Resident", cela pourrait contourner le problème ? A savoir, importer de mes tables B, C et D, seulement les lignes des identifiants présents dans A ?
Si oui, j'ai lu des sujets dessus, mais je ne comprends pas où placer ce fameux "Resident"..
Si non, pouvez-vous m'éclairer sur ce point ?
Sabrina,
Dans ce cas, le left join (exemple que je t'ai mis plus haut) me parait le plus adapté.
Kevin
Bonjour Sabrina,
RESIDENT te permet de remplacer le FROM en appelant une table que tu as précédemment créé.
Exemple :
TABLE A:
Load *
FROM unfichier;
TABLE B:
Load IDENTIFIANT
RESIDENT TABLE A;
left join
Load *
FROM fichiertableB;
et ainsi de suite
Effectivement, si tu fais cela, ton appli devrait être moins lourde.
Kevin
Une autre solution serait d'utiliser la fonction exists aussi dans ton cas :
Mais je pense que ce serait plus gourmand car tu dois charger toutes tes tables au préalable.
Kevin
Sabrina,
La jointure se fera sur tous les champs qui ont le même nom.
Assures-toi bien que les noms soient identiques et attention à la casse !!
Bonjour Sabrina,
Quelle est est ta source? base de données, fichiers Excel, fichiers plats
Bonjour Sébastien,
Mes tables proviennent de SQL Server.
Pour rappel, j'importe en premier ma table A, qui correspond à la population de que j'étudie.
Ensuite, je ramène plusieurs tables qui me permettent d'étoffer la connaissance de la personne (une table géographique, une table caractéristiques indiv, une table contrats,...)
Actuellement, pour les trois dernières tables, je charge l'ensemble des données présentes dans les tables. Aussi, je me retrouve à charger presque 1 000 000 de lignes qui ne me serviront à rien dans mon analyse.
Bonjour Kevin,
Je vais voir de ce côté
Merci !
No souci de ce côté là !
Sabrina,
Dans ce cas, le left join (exemple que je t'ai mis plus haut) me parait le plus adapté.
Kevin
Salut,
Super ça marche nikel.. Par contre, je suis étonnée de voir quand même toutes les lignes de mes grosses tables se charger dans mon script...
TABLE_A << BASE_CLIENT_SUIVI 2 102 lignes récupérées
TABLE_B_GENERALITES << TABLE_A 2 102 lignes récupérées
BASE_CLIENT_GENERALITES << BASE_CLIENT_GENERALITES 1 000 000 lignes récupérées
Si je comprends bien : le script charge quand même toute la table "BASE_CLIENT_GENERALITES" mais ne conserve que les lignes dont l'ID est présent dans la table A.
Du coup, le temps d'exécution du script reste le même mais l'app est bel et bien moins lourde ! Je passe de 64 MO à à peine 2 MO.