Sono curioso quale dei seguenti aspetti sarebbe più efficiente?
Sono sempre stato un po 'cauto nell'usare IN
perché credo che SQL Server trasformi il set di risultati in una grande affermazione IF
. Per un grande risultato, questo potrebbe comportare prestazioni scadenti. Per i piccoli set di risultati, non sono sicuro che sia preferibile. Per i set di risultati di grandi dimensioni, EXISTS
non sarebbe più efficiente?SQL Server IN vs. ESISTE Prestazioni
WHERE EXISTS (SELECT * FROM Base WHERE bx.BoxID = Base.BoxID AND [Rank] = 2)
vs.
WHERE bx.BoxID IN (SELECT BoxID FROM Base WHERE [Rank = 2])
Il modo migliore per scoprirlo è provarlo e fare alcune misurazioni. –
c'è ** got ** per essere un duplicato di gazillion per questo ...... –
@marc_s: sì, ma penso che dipenda davvero dal caso. Immagino che la risposta canonica sia quella di klausbyskov (o chiunque possa rivendicare la precedente arte). – RedFilter