Ich habe Probleme zu verstehen, wie das Hinzufügen nur das Hinzufügen der oberen Auswahl bewirkt, dass die Abfrage von 48 ms auf 7000 ms übergeht. Grundsätzlich, wenn ich nur die gelb hervorgehobene Abfrage ausführe, dauert es 48 ms. Wenn ich den oberen Teil hinzufüge, dauert es 7000 ms. Die Gesamtzahl der zurückgegebenen Zeilen beträgt nur 60, daher kann ich nicht nachvollziehen, warum das verlangsamt wird. Es fühlt sich an, als würde es alle Zeilen in meinen Teilnehmerdateien ausführen, nicht nur die 60, die in der in-Klausel gefunden werden.Nicht zu verstehen, warum das Hinzufügen von IN eine enorme Leistungseinbuße mit SqlServer 2014 verursacht
Abfrage:
Voll Abfrage Einschließlich In Paragraf Plan für die vollständige Abfrage über Plan für die nur ein Teil in gelb Raw Abfrage:
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
)
Dunno ist. Sie könnten das stattdessen als Join umschreiben, was vielleicht perf hilft. – Will