Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Kann UNION ALL schneller sein als JOINs oder sind meine JOINs einfach scheiße?

Die UNION ALL Version würde wahrscheinlich ganz einfach mit 2 Indexsuchen zufrieden sein. OR kann zu Scans führen. Wie sehen die Ausführungspläne aus?

Haben Sie dies auch versucht, um den Zugriff auf Notes zu vermeiden zweimal?

;WITH J AS
(
SELECT UniqueID FROM Leads WHERE LeadID = @LeadID
UNION ALL
SELECT UniqueID FROM Quotes WHERE LeadID = @LeadID
)

SELECT N.*  /*Don't use * though!*/
FROM Notes N  
JOIN J ON N.TargetUniqueID = J.UniqueID