Vanuit prestatieoogpunt zijn deze zoekopdrachten identiek.
UNION ALL
zal de prestaties niet schaden, aangezien Oracle
schat de UNION
'ed query alleen wanneer het het nodig heeft, het slaat de resultaten niet eerst in de cache op.
SELECT
syntaxis is flexibeler in die zin dat u de SELECT
. gemakkelijker kunt manipuleren vraag of je iets wilt veranderen.
Bijvoorbeeld deze vraag:
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
kan worden herschreven als
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
Door 2
te vervangen met het juiste nummer kunt u elk gewenst aantal rijen krijgen.
In het geval van INSERT ALL
, zou u de beschrijving van de bestemmingstabel moeten dupliceren, die minder leesbaar is als u bijvoorbeeld 40
nodig heeft rijen.