Ggf im
SQL das Matching oder andere "Hilfsmittel" ergänzen. Auch wenn es dann doppeltgemoppelt ist, könnte es dem Optimizer eine Hilfestellung sein.
Ohne weiteres wirkt ja ein Update erstmal auf den gesamten Datenbestand, ist also eine fette Nummer.
Wirklich flott ist wahrscheinlich eine komplette Umstellung auf:
Step1:
Insert into <table> (<fields>)
select <values> from table
where not exists .. (bzw. in richtig mit self join und is null Prüfung)
Step2:
Updates mit ähnlichem Vorgehen.
Wäre die Frage, ob es ständig geschieht und nervt oder die bequeme Formulierung oben eine einmalige Sache ist und mit ein paar Tränchen verdrücken zu bewältigen ist.