Ja, da sind wir uns definitiv einig...Ein Index ist die erste, einfachste und beste Methode um eine Abfrage zu beschleunigen, ich denke, da sind wir uns einig.
Aber... Ich würde niemals darauf bestehen einen Index anzulegen, anhand von Vermutungen...
Die Frage des Warum ist immer noch nicht geklärt... Einfach mal zu sagen "Ja, dann versuch mal diesen Index..." ist definitiv keine Lösung...
Das erste was mir auffällt... Das Statement wird zur Laufzeit erstellt... Keine Bind-Variablen, sondern es wird hart der Code geändert...
Zumindest Oracle wäre so intelligent zu sagen -> Hey, ich muss einen neuen Ausführungsplan generieren...
Ich weiß nicht wie MS SQL das handhabt... Aber ich denke dort wird es genau das gleiche sein?
Es ist jetzt definitiv nicht die Ursache für eine extrem lange Durchlaufzeit, aber wenigstens ein Punkt wo ich sagen würde: Hey... Dieses Statement / oder eher der Aufruf durch die Applikation ist nicht optimiert...
Und das lässt bei mir zumindest schoneinmal eine Glocke läuten: Um was geht es denn? Ist dieses Modell überhaupt optimiert worden? Oder ist das ein komplett neues Statement komplett losgelöst von bestehender Businesslogik ?
Naja, ich sag mal so:
Wenn es sich hierbei um ein Modell eines professionellen Anbieters handelt und der TO einfach nur ein paar Ansichten für die User haben will (Beispielsweise ein ERP-Modell), ist das was ihr da gerade gemacht habt zu 99.9999%-iger Wahrscheinlichkeit ein Vertragsbruch... Sämtliche Tabellen/Strukturen etc. müssten so bleiben wie sie sind und Änderungen dürften nur über den Anbieter/Hersteller gemacht werden. Alles andere führt zum Verfall jeder Art von Wartung/Garantie und kann unter Umständen sogar rechtliche Schritte nach sich ziehen...
Ich meine Ok... Euch kann es ja egal sein, ihr seid in dem Vertrag nicht drinn... Aber dem TO ist es höchstwahrscheinlich nicht egal...
An bestehenden Statements rumwurschteln und Vermutungen anstellen ist eine Sache... Aber einfach so ein bestehendes Modell zu ändern ne ganz andere...
Das ganze hier ist zwar nur ein Forum... Aber selbst hier erwarte ich doch ein gewisses Maß an Professionalität...