Heim >Datenbank >MySQL-Tutorial >Wie kann ich mehrere Zeilen effizient in eine Oracle-Datenbank einfügen?

Wie kann ich mehrere Zeilen effizient in eine Oracle-Datenbank einfügen?

Linda Hamilton
Linda HamiltonOriginal
2025-01-22 18:21:13748Durchsuche

How Can I Efficiently Insert Multiple Rows into an Oracle Database?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn