Weil dies dem Optimierer die Möglichkeit nimmt, andere Methoden in Betracht zu ziehen, die effizienter sein können.
Wenn die Datenverteilung (auf der der Optimierer seine Entscheidungen trifft) stark verzerrt ist und die Statistiken dies nicht korrekt darstellen können.
Dies sind verschiedene Algorithmen.
-
LOOPist verschachtelte Schleifen:Für jeden Datensatz aus der äußeren Tabelle wird die innere Tabelle nach Übereinstimmungen durchsucht (unter Verwendung des Index of available). Am schnellsten, wenn nur ein winziger Teil der Datensätze aus beiden Tabellen denJOINerfüllt und dasWHEREBedingungen. -
MERGEsortiert beide Tabellen, durchläuft sie in der Sortierreihenfolge und überspringt die nicht übereinstimmenden Datensätze. Am schnellsten für denFULL JOINs und wenn beide Datensätze bereits sortiert sind (von vorherigen Sortiervorgängen oder wenn der Index-Zugriffspfad verwendet wird) -
HASHErstellen Sie eine Hash-Tabelle im temporären Speicher (Speicher odertempdb) aus einer der Tabellen und durchsucht sie nach jedem Datensatz aus der anderen. Am schnellsten, wenn der große Teil der Datensätze aus beiden Tabellen mitWHEREübereinstimmt undJOINZustand.