Je suis curieux de savoir lequel des éléments suivants serait le plus efficace?
J'ai toujours été un peu prudent dans l'utilisation IN
car je pense que SQL Server transforme l'ensemble de résultats en une grande IF
déclaration. Pour un ensemble de résultats volumineux, cela peut entraîner de mauvaises performances. Pour les petits ensembles de résultats, je ne suis pas sûr que l'un ou l'autre soit préférable. Pour les grands ensembles de résultats, ne serait-il pas EXISTS
plus efficace?
WHERE EXISTS (SELECT * FROM Base WHERE bx.BoxID = Base.BoxID AND [Rank] = 2)
contre.
WHERE bx.BoxID IN (SELECT BoxID FROM Base WHERE [Rank = 2])
select 1 from Base...
faire where exists
puisque vous ne vous souciez pas réellement des résultats, juste qu'une ligne existe réellement.