Mengoptimumkan Sisipan Berbilang Baris Oracle
Panduan ini memperincikan kaedah yang cekap untuk memasukkan berbilang baris ke dalam pangkalan data Oracle, memfokuskan pada pendekatan yang lebih baik daripada yang digunakan dalam MySQL.
Pernyataan INSERT ALL
Sintaks INSERT ALL
Oracle menyediakan penyelesaian yang mantap untuk sisipan berbilang baris:
<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>
Di sini:
t
menetapkan jadual sasaran.col1
, col2
, col3
mewakili lajur jadual.val1_1
melalui val3_3
ialah nilai yang akan dimasukkan.DUAL
ialah jadual maya terbina dalam yang digunakan untuk pertanyaan satu baris.Sintaks Ringkas (Oracle 23c dan lebih baharu)
Oracle 23c memperkenalkan sintaks yang lebih diperkemas:
<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>
Pendekatan ini menawarkan ringkasan dan prestasi yang lebih baik berbanding INSERT ALL
.
Amalan Terbaik Prestasi
Walaupun sintaks yang lebih baharu biasanya lebih baik untuk sisipan pukal, pertimbangkan untuk mengehadkan bilangan baris setiap penyata sisipan untuk meminimumkan overhed penghuraian dan memaksimumkan kecekapan, walaupun dengan sintaks Oracle 23c yang dipertingkatkan. Untuk set data yang sangat besar, siasat menggunakan teknik lain seperti SQL*Loader.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Sisipan Berbilang Baris dengan Cekap dalam Pangkalan Data Oracle?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!