Arten von Joins

Man unterscheidet bezüglicher der internen Abarbeitung von Joins zwischen:

  • Nested Loops
  • Merge Join
  • Hash Match

Exkurs: Auf der einen Seite gibt es logische Join Operationen, wie beispielsweise Inner-Join oder Left-Join; auf der anderen Seite gibt es physicalische Join Operatoren. Damit ist die interne Abarbeitung gemeint.

Nested Loop Joins

Beim Nested Loop Join wird jede Zeile der outer Table (in der Regel die kleinere Tabelle) mit der inner Table verglichen. Dieser Vorgang ist sehr speicherschonend, aber skaliert sehr schlecht.

Merge Join

Merge Join ist vermutlich der schnellste

Hash Match

Hash Match Inner Joins werden verwendet um großeTabellen, die nicht sortiert sind (über einen Index). Sie berechnen für jeden Wert einen Hash-Value um sie miteinander zu vergleichen. Dabei verwendet der Algorithmus den Arbeitspeicher und sofern dieser nicht ausreicht auch die TempDB. Durch die mögliche Verwendung der TempDB kann die Abfrage langsam werden.

Suchen in Tabellen

Clustered Index Scan

Links: