Nochmal zur Klarstellung:
Param1 ist ein (Integer-)Feld sowohl in Tabelle1 als auch in Tabelle2. In Tabelle1 liegen Daten, die zu einem oder mehreren Datensätzen in Tabelle2 gehören und die Zuordnung erfolgt über Param1.
Es gibt jetzt eben Fälle, in denen Datensätze aus Tabelle2 gelöscht werden.
Danach sollen die Datensätze aus Tabelle1 herausgelöscht werden, die keinen zugeordneten Datensatz in Tabelle2 mehr haben (also verwaist sind) und das ist was der DELETE-Befehl machen soll.
Die Ergebnisse sind sowohl im Delphi als auch in Flamerobin reproduzierbar und auch wenn ich mein Delphi-Programm direkt ohne
IDE starte, bekomme ich die gleichen Laufzeiten. Die Datenbank ist immer die gleiche und bei der Datenbank, die ich benutzt habe, gibt es keine verwaisten Einträge in Tabelle1, so dass sich die Datenbank auch bei mehrmaligem Aufruf des DELETE-Befehls nicht ändert.
Die Datenbank-Datei ist lokal auf meinem Rechner, der Firebird-Server ist auch lokal installiert, so dass das Netzwerk eigentlich keine Rolle spielen dürfte.
Ich verwende eine TSQLQuery und eine TSQLConnection und schicke das Kommando mit ExecSQL an den Server.
Ich bin noch ein Datenbank-Neuling, deshalb verstehe ich nicht, was mit
Query-Plan und mit Transaktionskomponente gemeint ist.