Z hlediska výkonu jsou tyto dotazy totožné.
UNION ALL nepoškodí výkon, protože Oracle odhaduje UNION 'ed dotaz, pouze když to potřebuje, neukládá výsledky jako první.
SELECT syntaxe je flexibilnější v tom smyslu, že můžete snáze manipulovat s SELECT dotaz, pokud chcete něco změnit.
Například tento dotaz:
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
lze přepsat jako
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
Nahrazením 2 s příslušným číslem můžete získat libovolný počet řádků.
V případě INSERT ALL , museli byste duplikovat popis cílové tabulky, který je méně čitelný, pokud potřebujete, řekněme, 40 řádky.