Klingt für mich so, dass max for der Filterung ausgeführt wird, statt danach.
Ich würde es mit Schachtelung der Abfragen versuchen, als „Denk-Hilfe“ für den Ausführungsplan.
(Ich weiß nicht, ob und wie gut
FB Abfragen optimiert, also halt ein „Selbstoptimierungsversuch“)
Select max(feld1) from
(select feld1,feld2,feld3 frommytable
where …
) x
Idee wäre also: Die Abfrage in Klammern liefert erfreulich schnell 3 Datensätze und wird außen dann mit MAX leicht fertig. Vielleicht gibt es auch brutalere Umschreibungen des
SQL, um
FB dazu zu zwingen so vorzugehen. Vielleicht ist es auch gar nicht nötig, wenn man es wirklich richtig macht.