Тъй като това лишава оптимизатора от възможността да обмисли други методи, които могат да бъдат по-ефективни.
Когато разпределението на данните (за което оптимизаторът взема своите решения) е силно изкривено и статистиката не е в състояние да го представи правилно.
Това са различни алгоритми.
-
LOOP
е вложени цикли:за всеки запис от външната таблица, вътрешната таблица се търси за съвпадения (използвайки индекса на наличните). Най-бързо, когато само малка част от записите от двете таблици отговарят наJOIN
иWHERE
условия. -
MERGE
сортира и двете таблици ги обхожда в реда на сортиране, като пропуска несъвпадащите записи. Най-бързият заFULL JOIN
s и когато двата набора записи вече са сортирани (от предишни операции за сортиране или когато се използва пътя за достъп до индекса) -
HASH
изградете хеш таблица във временното хранилище (памет илиtempdb
) от една от таблиците и търси в нея всеки запис от другата. Най-бързо, ако голямата част от записите от която и да е таблица съответства наWHERE
иJOIN
състояние.