Hi hoika,
Leider kann man nur an 1-2 Stellen das LEFT JOIN durch ein INNER JOIN ersetzen.
Wenn ich aber testweise ein SELECT einmal mit LEFT JOIN und einmal mit JOIN durchlaufen lasse, dann ist sowohl der
Query plan als auch die verwendete Zeit identisch. Deshalb behaupte ich weiterhin, das ein LEFT JOIN auch nur ein paar Indexe abklappert. Ehrlich gesagt war ich auch der Überzeugung, das ein LEFT JOIN länger dauert. Bis ich das mal durchgetestet habe und keine Verbesserung beobachten konnte.
Ich versuche gerade, dem
Query-Optimizer und der Engine die Sache zu vereinfachen, indem ich meine Funktion noch weiter verbessere: Derzeit werden alle Aufträge innerhalb des Zeitraums generiert, zum Client geschaufelt und dort (mit einem TcxGrid von DevExpress) gefiltert. Das geht viel schneller, als dieses blöde 'SELECT * From View_Orders', ist aber trotzdem nicht perfekt. Und vor Allen Dingen ist es doch krank, erstmal 4MB Daten zu verschicken, nur um im Client eine Zeile darzustellen.