Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Was ist der schnellste Weg, um Daten in eine Oracle-Tabelle einzufügen?

Es ist viel besser, ein paar hundert Zeilen auf einmal einzufügen, indem man PL/SQL-Tabellen und FORALL verwendet, um sie in die Insert-Anweisung zu binden. Einzelheiten dazu finden Sie hier .

Achten Sie auch darauf, wie Sie die PL/SQL-Tabellen erstellen. Wenn möglich, ziehen Sie es stattdessen vor, alle Ihre Transformationen direkt in SQL mit "INSERT INTO t1 SELECT ..." durchzuführen, da zeilenweise Operationen in PL/SQL immer noch langsamer als SQL sind.

In beiden Fällen können Sie auch direkte Einfügungen verwenden, indem Sie INSERT /*+APPEND*/ verwenden , das den DB-Cache im Grunde umgeht und neue Blöcke direkt zuweist und in Datendateien schreibt. Dies kann auch den Umfang der Protokollierung reduzieren, je nachdem, wie Sie es verwenden. Dies hat auch einige Auswirkungen, also lesen Sie bitte den gute Anleitung Erste.

Wenn Sie schließlich die Tabelle abschneiden und neu erstellen, kann es sich lohnen, zuerst Indizes zu löschen (oder als unbrauchbar zu markieren) und später neu zu erstellen.