Ciekawi mnie, które z poniższych byłoby bardziej wydajne?
Zawsze byłem trochę ostrożny przy używaniu, IN
ponieważ uważam, że SQL Server zamienia zestaw wyników w dużą IF
instrukcję. W przypadku dużego zestawu wyników może to spowodować słabą wydajność. W przypadku małych zestawów wyników nie jestem pewien, czy któryś z nich jest lepszy. W przypadku dużych zestawów wyników nie EXISTS
byłby bardziej wydajny?
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])
select 1 from Base...
w swojej where exists
ponieważ w rzeczywistości nie dbają o wynikach, tylko, że rząd rzeczywiście istnieje.