Скажите, что у меня есть запрос, подобный приведенному ниже:
SELECT t1.id, t1.Name
FROM Table1 as t1 --800,000 records
INNER JOIN Table2 as t2 --500,000 records
ON t1.fkID = t2.id
INNER JOIN Table3 as t3 -- 1,000 records
ON t1.OtherId = t3.id
Могу ли я увидеть улучшение производительности, если я изменю порядок своих объединений в таблицах 2 и 3? Смотрите ниже:
SELECT t1.id, t1.Name
FROM Table1 as t1 --800,000 records
INNER JOIN Table3 as t3 -- 1,000 records
ON t1.OtherId = t3.id
INNER JOIN Table2 as t2 --500,000 records
ON t1.fkID = t2.id
Я слышал, что Оптимизатор запросов попытается определить лучший порядок, но не всегда работает. Имеет ли значение версия SQL Server, которую вы используете, имеет значение?