Когда я должен использовать INNER -LOOP- JOIN вместо INNER JOIN
Сегодня я узнал о том, что в SQL Server называется INNER LOOP JOIN
,
Что это значит? (Google не помогает.. или я должен сказать... сообщения в блоге об этом немного.. технические и поражают меня).
Кроме того, каковы некоторые распространенные сценарии, которые были бы хорошей идеей использовать INNER LOOP JOIN
сверх стандарта INNER JOIN
?
2 ответа
LOOP | ХЭШ | MERGE - это подсказки соединения, указывающие, что соединение в запросе должно использовать зацикливание, хеширование или слияние. Использование LOOP |HASH | MERGE JOIN обеспечивает конкретное соединение двух таблиц. LOOP нельзя указывать вместе с RIGHT или FULL в качестве типа соединения.
Вы всегда должны использовать INNER JOIN. Пусть оптимизатор запросов решит, хочет ли он выполнить соединение LOOP, MERGE или HASH. Почти во всех случаях оптимизатор будет принимать более правильное решение. Какой из них будет использоваться и когда его можно найти в моей презентации http://sqlbits.com/Sessions/Event4/Understanding_Graphical_Execution_Plans.
То, на что вы ссылаетесь, является подсказкой о присоединении. Как и другие подсказки, подсказки о присоединении следует указывать только в качестве крайней меры, поскольку большую часть времени SQL-сервер выбирает правильный алгоритм. Хорошая статья, чтобы объяснить некоторые из них это.