Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

UNION ALL può essere più veloce delle JOIN o le mie JOIN fanno semplicemente schifo?

Il UNION ALL versione verrebbe probabilmente soddisfatta abbastanza facilmente da 2 ricerche di indice. OR può portare a scansioni. Che aspetto hanno i piani di esecuzione?

Hai anche provato questo per evitare di accedere a Notes due volte?

;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