Heim >Datenbank >MySQL-Tutorial >Wie kann ich mehrere Zeilen effizient in eine Oracle-Datenbank einfügen?
Effiziente Methode zum Batch-Einfügen von Daten in die Oracle-Datenbank
Es gibt viele Möglichkeiten, mehrere Datenzeilen in die Oracle-Datenbank einzufügen. Die in MySQL häufig verwendete Batch-Insert-Methode wird in Oracle nicht direkt unterstützt.
Verwenden Sie die INSERT ALL-Anweisung
In Oracle können Sie die INSERT ALL
-Anweisung zum Batch-Einfügen verwenden. Diese Anweisung enthält mehrere INTO
-Klauseln. Jede Klausel stellt eine einzufügende Datenzeile dar. Die Anweisung endet mit SELECT 1 FROM DUAL
als Zeichen für das Ende der Einfügung.
<code class="language-sql">INSERT ALL INTO t (col1, col2, col3) VALUES ('val1_1', 'val1_2', 'val1_3') INTO t (col1, col2, col3) VALUES ('val2_1', 'val2_2', 'val2_3') INTO t (col1, col2, col3) VALUES ('val3_1', 'val3_2', 'val3_3') . . . SELECT 1 FROM DUAL;</code>
Oracle 23c vereinfachte Syntax
Oracle 23c führt eine vereinfachte Masseneinfügungssyntax ein, die die INSERT ALL
-Anweisung überflüssig macht. Mehrere Datenzeilen können mithilfe einer durch Kommas getrennten Liste wie dieser eingefügt werden:
<code class="language-sql">INSERT INTO t(col1, col2, col3) VALUES ('val1_1', 'val1_2', 'val1_3'), ('val2_1', 'val2_2', 'val2_3'), ('val3_1', 'val3_2', 'val3_3');</code>
Leistungsüberlegungen
Bei großen Datenmengen müssen Leistungsprobleme berücksichtigt werden. Die neue INSERT-Syntax in Oracle 23c ist viel schneller als INSERT ALL
und hat eine vergleichbare Leistung wie die UNION ALL
-Methode. Das gleichzeitige Einfügen von mehr als etwa 1000 Datenzeilen führt jedoch zu einem exponentiellen Anstieg der Parsing-Zeit.
Das obige ist der detaillierte Inhalt vonWie kann ich mehrere Zeilen effizient in eine Oracle-Datenbank einfügen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!