Super!!!
Zitat von
onlinekater:
Das beobachtete Verhalten erklärt sich wie folgt:
Firebird kennt sowohl ascending als auch descending indices.
PKs werden automatisch ascending angelegt.
Um die Max()-Funktion auszuführen, guckt der Optimizer nach, ob es zu dem entsprechenden Feld einen DESCENDING Index gibt. Ist ein solcher nicht vorhanden, so wird gar kein Index genutzt.
Leg Dir also zusätzlich einen descending index auf das Feld, das Du mit der MAX()-Funktion bearbeiten willst und Dein Problem ist gelöst.
Das funktioniert genau wie beschrieben, das Problem ist hiermit gelöst.
Der Optimizer verwendet jetzt auf allen mit einem DESCENDING Index versehenen Felder auch diesen und ist entsprechend schnell.
Danke