我無法理解如何添加頂部選擇會導致查詢從48 ms變爲7000 ms。基本上,如果我只執行黃色突出顯示的查詢,則需要48 ms。當我添加頂部時,需要7000毫秒。返回的總行數只有60,所以我不明白爲什麼減速。感覺好像它正在執行我的與會者文件中的所有行,而不僅僅是在in子句中找到的60行。不明白爲什麼添加IN會導致SqlServer 2014巨大的性能影響
查詢:
完整的查詢,包括條款上面 計劃全面查詢黃色 原始查詢只是部分 計劃:
SELECT Attendees.Id,
Attendees.UserFirstName,
Attendees.UserLastName,
Attendees.Email
FROM Attendees
WHERE Id IN (
SELECT DISTINCT dbo.Attendees.Id
FROM dbo.SessionAttendee
INNER JOIN dbo.Attendees ON (
dbo.SessionAttendee.Attendees_username = dbo.Attendees.PKID
)
INNER JOIN dbo.Sessions ON (dbo.SessionAttendee.Sessions_id =
dbo.Sessions.Id)
WHERE dbo.Sessions.CodeCampYearId = 104 AND
dbo.SessionAttendee.Interestlevel = 3
)
說不上來。你可以改寫它作爲一個連接,可能會幫助完成。 – Will