Я интересно, если с помощью переменной таблицы более или менее производительные, чем при использовании внутреннего соединения (выбор)
Примера:sql INNER JOIN переменная таблицы ON VS. INNER JOIN (выберите) ПО
DECLARE @tab TABLE(Id int)
INSERT INTO @tab
SELECT Id
FROM SomeTable
WHERE SomeDate = "10 DAYS AGO"
SELECT *
FROM SomeOtherTable
INNER JOIN @tab t
ON SomeOtherTable.id = t.id
--VERSUS--
SELECT *
FROM SomeOtherTable
INNER JOIN (SELECT Id FROM SomeTable WHERE SomeDate = "10 DAYS AGO") t
ON SomeOtherTable.id = t.id
Для больших запросов первый становится более сопровождаемым, если вы должны сделать одно и то же соединение несколько раз, но что является самым результативным?
Привет
Как насчет 'SELECT * FROM SomeOtherTable WHERE Id IN (SELECT Id FROM SomeTable WHERE SomeDate =" 10 DAYS AGO ")', индексирование для 'SomeDate' и в том числе' Id'? –
проверить с mysql ** объяснить **, если я не ошибаюсь в общем, вы хотите получить трюк, чтобы сделать внутреннее (selct from), выполненное первым, изнутри вычеркнуто. Также google для оптимизации запросов sql или оптимизации соединения sql – Melsi
Я предположил, что SQL Server, сообщите мне, если это правильно. –