Wir versuchen herauszufinden, wie man BULK INSERTs mit Oracle (10gR2) am besten handhaben kann, und ich finde, dass es ein ziemlich kompliziertes Thema sein kann. Eine Methode, die ich gefunden habe, beinhaltet das Anfügen Optimierungshinweis mit:Ist Direct-Path-Einfügen eine gute Möglichkeit, Masseneinfügungen in Oracle durchzuführen?
INSERT /*+ Append*/
INTO some_table (a, b)
VALUES (1, 2)
Mein Verständnis ist, dass dies sagen Oracle Indizes zu ignorieren und setzen nur die Ergebnisse am Ende der Tabelle. Dann alles, was ich sollte tun müssen, ist die Indizes neu zu erstellen:
ALTER INDEX some_index REBUILD
Dies wäre einfacher, als zu versuchen, SQL * Loader als externer Prozess oder tun einige PL/SQL zu starten. Das erscheint mir fast zu einfach. Gibt es etwas, das mir fehlt? Irgendwelche Dinge, die zurückkommen könnten, um mich zu beißen, wenn ich diesen Ansatz nehme?
Insert/* + * APPEND/reduziert Protokollierung, so bewrare, wenn Sie auf die Protokolle für Backup/Replikation http setzen: //www.pythian. com/news/1209/how-to-find-objects-creating-nologging-änderungen –
Nicht ganz wahr, Gary. Nologging gilt nur für Einsätze, die im direkten Pfadmodus ausgeführt werden, direkte Pfadeinfügungen können jedoch weiterhin protokolliert werden. http://download.oracle.com/docs/cd/B19306_01/server.102/b14231/tables.htm#sthref2251 –