Почему 'HASH JOIN' или 'LOOP JOIN' улучшают этот хранимый процесс?
У меня есть базовый запрос, который идет от 6 секунд до 1 секунды, просто изменив одно соединение сLEFT JOIN
вLEFT HASH JOIN
или же 'LEFT LOOP JOIN ', Может кто-нибудь объяснить, почему это приведет к такому увеличению производительности и почему SQL 'с оптимизатором нетне могу понять этособственный?
Вот примерно так выглядит SQL:
SELECT
a.[ID]
FROM
[TableA] a
LEFT HASH JOIN
[TableB] b
ON b.[ID] = a.[TableB_ID]
JOIN
[TableC] c
ON c.[ID] = a.[TableC_ID]
WHERE
a.[SomeDate] IS NULL AND
a.[SomeStatus] IN ('X', 'Y', 'Z') AND
c.[SomethingElse] = 'ABC'
Таблицы A и B содержат миллионы записей и индексов для всех полей идентификаторов. Использование SQL Server 2005.
Редактировать: Коллеги предложили LEFT LOOP JOIN, и это, кажется, сделало его еще быстрее ... SQL не является моей сильной стороной, поэтому я пытаюсь понять, как они »намеки помогаем