Technisch gesehen müsste EXISTS gerade wschnell sein, weil es eine Boolean-Abfrage ist. Count zum Beispiel muss durch alle Register rennen un dir die genaue Anzahl zu sagen, EXISTS nur bis zum ersten Vorkommen.
Ob das Boolean ist, dürfte m.E. keine Rolle spielen, besser als Count könnte es sein, wenn der Lauf wirklich beim 1 Treffer abgebrochen wird.
Der entscheidende Punkt ist, wie intelligent Firebird die Unterabfrage mit Referenz zu Hauptmenge erstellt. Die Ausführungsdauer sieht danach aus, das mindestens eine der Tabellen immer wieder abgefragt wird.
Das könnte mit meinem Vorschlag bzw konkret Uwes
SQL evtl. besser gehen.