Dari sudut pandang kinerja, kueri ini identik.
UNION ALL tidak akan merusak kinerja, karena Oracle memperkirakan UNION 'ed query hanya ketika dibutuhkan, tidak men-cache hasil terlebih dahulu.
SELECT sintaks lebih fleksibel dalam arti bahwa Anda dapat lebih mudah memanipulasi SELECT kueri jika Anda ingin mengubah sesuatu.
Misalnya, kueri ini:
insert into pager (PAG_ID,PAG_PARENT,PAG_NAME,PAG_ACTIVE)
select 8000,0,'Multi 8000',1 from dual
union all select 8001,0,'Multi 8001',1 from dual
dapat ditulis ulang sebagai
INSERT
INTO pager (PAG_ID,PAG_PARENT,PAG_NAME,PAG_ACTIVE)
SELECT 7999 + level, 0, 'Multi ' || 7999 + level, 1
FROM dual
CONNECT BY
level <= 2
Dengan mengganti 2 dengan nomor yang sesuai, Anda bisa mendapatkan jumlah baris yang Anda inginkan.
Dalam kasus INSERT ALL , Anda harus menduplikasi deskripsi tabel tujuan, yang kurang dapat dibaca jika Anda membutuhkan, katakanlah, 40 baris.