Protože to okrádá optimalizátor o příležitost zvážit jiné metody, které mohou být efektivnější.
Když je distribuce dat (o které se optimalizátor rozhoduje) silně zkreslená a statistika ji nedokáže správně reprezentovat.
Toto jsou různé algoritmy.
-
LOOP
je vnořená smyčka:pro každý záznam z vnější tabulky se hledá shoda ve vnitřní tabulce (pomocí indexu dostupných). Nejrychlejší, když pouze malá část záznamů z obou tabulek splňujeJOIN
aWHERE
podmínky. -
MERGE
seřadí obě tabulky, projde jimi v pořadí řazení a přeskočí neshodné záznamy. Nejrychlejší proFULL JOIN
s a když jsou obě sady záznamů již seřazeny (z předchozích operací řazení nebo při použití přístupové cesty indexu) -
HASH
vytvořte hashovací tabulku v dočasném úložišti (paměť nebotempdb
) z jedné z tabulek a vyhledá v ní každý záznam z druhé tabulky. Nejrychlejší, pokud velká část záznamů z kterékoli tabulky odpovídáWHERE
aJOIN
podmínka.