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 */
for select distinct param1
from tabelle1
into :param1
do begin
/* ist dieser Param1 mindestens einmal in Tabelle2 enthalten */
p = null;
select param1 from tabelle2 where param1 = :param1 rows 1 into :p;
if (p is null) then
begin
delete from tabelle1 where param1 = :param1;
end
end
Falls Rows in deinem
SQL-Dialekt nicht existiert, gibt es zumindest ein gleichwertiges Schlüsselwort.