2
我想知道如果使用表变量比使用内部联接(选择)
实施例更多或更少的高性能:SQL INNER JOIN表变量ON VS. INNER JOIN(选择)ON
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 **解释**,如果我一般没有错,你想要一个技巧,使内部(选择)首先执行,从内向外执行。另外谷歌的SQL查询优化或SQL连接优化 – Melsi
我假定SQL Server,请让我知道如果这是正确的。 –