Thema: Delphi ADS Inner Join = No Go?

Einzelnen Beitrag anzeigen

Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#2

AW: ADS Inner Join = No Go?

  Alt 16. Jan 2014, 15:28
Bei zwei LEFT OUTER JOINS kann die Datenbank selbst wählen in welcher Reihenfolge sie die Joins ausführen möchte.
Obwohl das Ergebnis gleich ist kann die Reihenfolge eine grossen Unterschied bei der Anzahl der Operationen ausmachen.
Siehe auch Matrizen-Kettenmultiplikation
Bei einem OUTER JOIN werden keine Indexe benützt!

Bei einem INNER JOIN und einem LEFT OUTER JOIN wäre es möglich oder wahrscheinlich, dass die Datenbank zuerst den INNER JOIN ausführt und danach den LEFT OUTER JOIN weil sie den Index benützen möchte.
Gut möglich, dass dabei genau der aufwändigere Weg gewählt wird.
Der optimale Weg dürfte datenabhängig sein - es ist gar nicht so einfach den richtigen Weg zu finden.

Hier liest doch ein Entwickler von ADS mit, oder?
Du könnst ja mal eine Datenbank mit Testdaten + deine beiden Queries zusammenstellen damit die Jungs das untersuchen können.
fork me on Github
  Mit Zitat antworten Zitat