Bonjour,
je dois effectuer dans le cadre d'un etl maison des imports en parallèle. Nous utilisons une base Oracle 11gr2 déployée sur un serveur avec 4 v cpu.
Ma méthode est celle ci :
J'élabore actuellement en mémoire la liste des insertions à faire en masse et exporte cela dans un fichier.
ensuite je me sers du fichier comme d'une table externe et j'effectue un insert comme ceci :
pid représente la PK qui n'est normalement pas en base et propre au contenu de ce fichier.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 insert into products (pid,pname, pcategoryid) select pid,pname, pcategoryid from table_ext123;
Le fichier contient environ 500 000 lignes.
Tout est prévu pour que l'on puisse avoir en parallèle le même fonctionnement de telle manière qu'au final à instant T plusieurs process pourront exécuter séparément le même type de travail. Et donc avec à chaque fois des jeux de données uniques.
On m'a indiqué que j'aurais probablement un problème de verrouillage de la table qui m'empêchera d'avoir recours à des insert en parallèle.
J'ai essayé de m'y retrouver dans la documentation ici : http://www.sqlpac.com/referentiel/do...l#.WdeDUWi0PIV mais je suis un peu perdu.
Est-ce qu'il y aura réellement un lock même si j'insère tout le temps des valeurs particulières qui ne se chevauchent pas ?
Est-ce que les utilisateurs pourront continuer de requêter pendant que j'effectue mes imports ?
Merci pour vos réponses,
Lek
Partager