Nous essayons de trouver la meilleure façon de gérer les INSULES en vrac en utilisant Oracle (10gR2), et je trouve que cela peut être un sujet assez compliqué. Une méthode que j'ai trouvé consiste à utiliser l'indicateur d'optimiseur Append:Est-ce que l'insertion de chemin direct est un bon moyen de faire des insertions en masse dans Oracle?
INSERT /*+ Append*/
INTO some_table (a, b)
VALUES (1, 2)
Ma compréhension est que cela dire Oracle d'ignorer les index et il suffit de mettre les résultats à la fin de la table. Alors, tout ce que je devrais faire est de reconstruire les index:
ALTER INDEX some_index REBUILD
Ce serait plus facile que d'essayer de lancer SQL * Loader comme un processus externe ou de faire une pl/SQL. Cela semble presque trop facile. Y a-t-il quelque chose qui me manque? Des choses qui pourraient revenir me mordre si je prends cette approche?
Insérer/* + append */réduit l'enregistrement, donc bewrare si vous comptez sur les journaux pour la sauvegarde/réplication http: //www.pythian. com/news/1209/comment-trouver-objets-créer-nologging-changements –
Pas tout à fait vrai, Gary. Le nologging ne s'applique qu'aux insertions effectuées en mode Direct Path, mais les inserts Direct Path peuvent toujours être journalisés. http://download.oracle.com/docs/cd/B19306_01/server.102/b14231/tables.htm#sthref2251 –