Forum: Datenbanken
Delphi
by Blup,
18. Jan 2022
Du hast deine Bedingung für die Abfrage geändert.
Die zweite Bedingung der ursprünglichen Abfrage bezog sich auf Feld3.
("not in" oder mehrere "<>" führen zum selben Plan und sind somit auch gleich langsam)
/**/
Select Max(Feld1) From tabelle1 where Feld2 = 'Schraube' and Feld3 <> 'klein' and Feld 3 <> ''
Darauf bezogen sind auch die Optimierungsversuche und mein Vorschlag für einen...
Forum: Datenbanken
Delphi
by Blup,
17. Jan 2022
Meiner Meinung nach müsste dieser Index für diese Abfrage optimal sein:
CREATE DESCENDING INDEX TABELLE1_IDX ON TABELLE1 (FELD2, FELD1);
/* */
- alle Einträge für Feld2 = "Schraube" können direkt über den Index angesprochen werden
- innerhalb dieses Bereichs stehen die grössten Werte für Feld2 am Anfang
- die Abfrage muss nur durch den Bereich gehen, bis die Bedingung für Feld3 erfüllt...