Nejlepšího výkonu dosáhnete, pokud dokážete zakódovat své „testy“ do samotné logiky SQL, takže můžete vše zredukovat na hrstku příkazů UPDATE. Nebo alespoň takto udělat co nejvíce, takže je třeba aktualizovat méně řádků jednotlivě.
Například:
UPDATE tablename set firstname = [some logic]
WHERE [logic that identifies which rows need the firstname updated];
Moc toho o svých testech nepopisuješ, takže je těžké si být jistý. Ale obvykle můžete do své klauzule WHERE dostat spoustu logiky s trochou práce.
Další možností by bylo vložit vaši logiku do uložené procedury. Stále budete provádět 350 000 aktualizací, ale alespoň ne všechny „jdou přes drát“. Použil bych to však pouze jako poslední možnost; obchodní logika by měla být zachována v aplikační vrstvě, kdykoli je to možné, a uložené procedury činí vaši aplikaci méně přenosnou.