Ciekawi mnie, które z poniższych byłoby bardziej wydajne?
Zawsze byłem trochę ostrożny przy używaniu, INponieważ uważam, że SQL Server zamienia zestaw wyników w dużą IFinstrukcję. 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 EXISTSbył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 existsponieważ w rzeczywistości nie dbają o wynikach, tylko, że rząd rzeczywiście istnieje.