Het verwijderen van 3,7 miljoen rijen is erg tijdrovend, vanwege de overhead van het opzoeken van elke rij en het loggen en verwijderen van de rijen. Alleen al denken aan alle vuile pagina's, logging en cachemissers is verbijsterend - om nog maar te zwijgen van updates van de indexen.
Om die reden kan zoiets als dit veel sneller zijn:
create temporary table temp_n2p as
select n2p.*
from "target".name2phoneme n2p
where not exists (select 1
from delta.name2phoneme d
where n2p.NAME_ID = d.NAME_ID and
n2p.PHONEME_ID = d.PHONEME_ID
);
truncate table "target".name2phoneme;
insert into "target".name2phoneme
select *
from temp_n2p;
U moet ook de indexen voor de inkorting verwijderen en ze daarna opnieuw maken.