Bonjour,
J'aimerais savoir comment faire pour optimiser le temps d'exécution d'une requête INSERT lancée depuis une BDD sur une autre base via un DB_LINK.
Voici ma requête
Le temps d'exécution de la requête SELECT (sans la clause INSERT INTO) est de quelques minutes seulement alors que le temps d'exécution de la requête INSERT est de plusieurs heures.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 INSERT INTO ma_table_locale (champ1, champ2, champ3) SELECT champ 1, champ2, champ3 FROM ma_table_distante@mon_dblink WHERE EXISTS(select 1 from autre_table_locale where ma_table_locale.champ4=autre_table_locale.champ4);
J'avais une clé primaire sur "ma_table_locale" que j'ai inactivé en pensant gagner du temps d'exécution mais cela n'a pas fonctionné.
Auriez-vous des pistes à explorer pour réussir à optimiser le temps de traitement de cette requête ?
Quelles solutions pourraient être mises en place pour que l'INSERT ne prenne plus 3 heures ?
J'ai pensé à faire une extraction dans un fichier .txt du résultat de la requête SELECT pour ensuite faire un import via SQL LOADER mais n'ai pas encore testé car ça ne me paraît pas pertinent d'exporter des données Oracle pour ensuite les réimporter dans Oracle...
Merci beaucoup pour vos idées.
MarieO
Partager