Hallo Leute,
ich habe ein Problem das manchmal ein Index nicht benutzt wird. Ich habe den Select einmal vereinfacht. Der Rest wird nicht zu Lösung benötigt und es ist so ggf. einfacher zu lesen
Delphi-Quellcode:
Select Tabelle1.FeldA,Tabelle1.FeldB
From Tabebel1
Left Outer Join Tabelle2 on (gelöscht um es zu vereinfachen )
where Tabebel1.Feld1 is NULL and Tabebel1.Feld2 = 'BA' and
Tabebel1.Feld3 = 'IX2000' and (Tabebel1.Feld4 = 'AB' or
Tabebel1.Feld4 = 'AE' or Tabebel1.Feld4 = 'AÄ' or
Tabebel1.Feld4 = 'AR')
and Tabebel1.Feld5 is NULL and Tabelle2.Feld9 = '1'
group by Tabelle1.FeldA,Tabelle1.FeldB
Es ist jewals ein extra Index angelegt auf:
Feld1, Feld2, Feld3, Feld4, Feld5, Feld9
Es wird nun nur der Index auf das Feld1 benutzt und ein Indix auf ein Feld9 welche auch in der Join ist. Wenn ich diese Bedingung entferne, also bei der Where das Feld1 entferne so werden als Index alle (restlichen) benutzt.
Wie kann den das sein bzw. warum benutzt Firebid nicht alle angelegten ?
Danke schon mal für die Antworten Tanja