Ohne Kenntnis der Tabellenstruktur (insbesondere welchen Index es gibt) und ohne Kenntnis über die Daten ist es schwierig, Hinweise zur Optimierung zu geben.
Ich gehe davon aus, es existiert zumindest für Param1 in beiden Tabellen ein Index, aber Param1 ist in beiden Tabellen nicht eindeutig.
Code:
/* Liste aller Param1 in Tabelle1 durchgehen */
...
Falls Rows in deinem
SQL-Dialekt nicht existiert, gibt es zumindest ein gleichwertiges Schlüsselwort.
Ich habe deinen Code mal in einer StoredProcedure ausprobiert, damit geht es deutlich schneller. Allerdings gibt es Fälle, in denen grosse Teile der Tabelle1 gelöscht werden und dabei ist diese Variante nicht so schnell (ich nehme an, weil für jede zu löschende Zeile ein DELETE aufgerufen wird).