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.