|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Nouveau Membre du Club
![]() Inscription : octobre 2006 Messages : 82 ![]() |
Bonjour,
Je souhaiterai faire une requête en SQL qui pourrait effectuer un gros traitement en une seule fois, mais je ne sais pas comment c'est faisable. J'en appelle à vous pour me guider, car je débute seulement en Oracle. Imaginons que la base que je souhaite remplir est composée de 2 tables : - table_noms (nom_id [INTEGER auto increment], nom [VARCHAR]) qui contient une liste de noms de personnes et - table_telephones (tel_id [INTEGER auto increment], tel_number [VARCHAR], nom_id [INTEGER]) qui contient une liste de numéros de téléphones. J'ai une clé étrangère sur le champ "nom_id" : un numéro de téléphone est forcement lié à un nom de personne. Je code un ETL en PHP qui me permet de remplir cette base de données. J'ai réussi à créer et remplir une table temporaire, qui contient toutes mes infos : temp_nom_tel (nom [VARCHAR], telephone [VARCHAR]). Je souhaiterai pouvoir faire de manière la plus optimisée mon chargement de tables. La première chose que j'ai faite, c'est un script PHP qui fait : Code :
Le problème, c'est que quand j'ai 200'000 lignes, ça prend des plombes !!! Existe-t-il une façon de faire ce traitement avec un minimum de requêtes ? (quelle est la façon la plus optimisée de faire ce traitement ?) Je code en PHP en faisant des requêtes PDO, donc je ne sais pas si je peux exécuter des blocs de PL/SQL (sans parler du fait que je ne sais pas faire de scripts PL/SQL). Mon modèle est en réalité beaucoup plus compliqué que ce que j'ai présenté, c'est pour ça que je ne peux pas tout simplement changer mon modèle |
||
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() Chef de projet en SSII Inscription : janvier 2004 Messages : 2 866 ![]() |
Si ta question est de savoir si tu peux insérer dans deux tables en une seule requête : pas à ma connaissance.
Sinon essaie de repréciser ton problème.
__________________
Un problème sans solution est un problème mal posé Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP. |
|
|
00
|
|
|
#3 | |
|
Nouveau Membre du Club
![]() Inscription : octobre 2006 Messages : 82 ![]() |
Citation:
L'autre partie est "comment faire au mieux ?". Faut-il (peut-on) passer par un script PL/SQL ? Un script PHP ? Une procédure stockée ? Pour moi, tous les avis sont bons à prendre |
|
|
|
00
|
|
|
#4 | ||
|
Expert Confirmé
![]() Chef de projet en SSII Inscription : janvier 2004 Messages : 2 866 ![]() |
Peut-être en faisant deux insert "globaux" :
Code :
__________________
Un problème sans solution est un problème mal posé Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP. |
||
|
|
00
|
|
|
#5 |
|
Nouveau Membre du Club
![]() Inscription : octobre 2006 Messages : 82 ![]() |
J'avais retourné le problème dans tous les sens, et je n'ai jamais envisagé cette solution qui est pourtant simple et logique ! Je te remercie beaucoup
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com