Meskipun tampaknya lebih sedikit kode untuk diproses akan memberi Anda peningkatan kinerja, menggunakan opsi pertama (menyatukan semua) adalah ide yang buruk. Semua pernyataan pilih harus diuraikan dan dieksekusi sebelum data dimasukkan ke dalam tabel. Ini akan menghabiskan banyak memori dan mungkin butuh waktu lama untuk menyelesaikan bahkan untuk jumlah data yang cukup kecil. Di sisi lain, pernyataan penyisipan terpisah dieksekusi "on the fly".
Jalankan tes sederhana di SSMS yang akan membuktikan ini:buat tabel sederhana dengan 4 bidang dan coba masukkan 20k baris. Solusi kedua akan dieksekusi dalam hitungan detik, sementara yang pertama... Anda akan melihat :).
Masalah lain adalah ketika data tidak benar di beberapa baris (misalnya, ketik mismatch), Anda akan menerima kesalahan seperti Conversion failed when converting the varchar value 'x' to data type int.
, tetapi Anda tidak akan memiliki indikasi baris mana yang gagal - Anda harus menemukannya sendiri. Namun dengan sisipan terpisah, Anda akan tahu persis sisipan mana yang gagal.