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,請讓我知道如果這是正確的。 –