Einzelnen Beitrag anzeigen

WoGe

Registriert seit: 16. Jun 2005
Ort: Kelkheim
178 Beiträge
 
Delphi 10.3 Rio
 
#16

Re: Merkwürdikeit bei Select max(id) from..

  Alt 27. Aug 2007, 08:36
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
  Mit Zitat antworten Zitat