TSQL — как оптимизатор справляется с соединениями с неиспользуемыми таблицами
SELECT table1.col1, table2.col1, table2.col2 -- etc.
FROM dbo.table1
LEFT JOIN dbo.table2
on (table1.id = table2.id)
LEFT JOIN dbo.table3
on (table1.id = table3.id)
В приведенном выше простом примере очевидно, что таблица 3 не нужна, однако могут быть и более сложные случаи.
Вопрос. Может ли оптимизатор запросов TSQL определить, что JOIN с таблицей 3 не нужен? Если да, может ли он пропустить другие оптимизации для более сложных запросов, если таблица 3 не была удалена из запроса вручную?
Я использую SSMS 14.017 с базовой базой данных SQL select @@version = Microsoft SQL Server 2014 (SP3)