select 句の ISNULL() は、パフォーマンスにほとんど影響を与えません。一方、where 句では、オプティマイザがその列のインデックスを使用できなくなるため、パフォーマンスに非常に大きな影響を与える可能性があります。
where isnull(col1, 0) = 0 -- unable to use index, because every -- row has to be evaluated where col1 = isnull(@myVar, 0) -- index will be used, since isnull(@myVar, 0) -- returns the same static value for every row and -- not every row has to be evaluated by the function.
プレ>そのため、where 句で isnull() を使用する場合は、クエリ オプティマイザーがインデックスを使用できないかどうかを評価します。その場合は、isnull(col1, 0) の場合の結果を使用して計算列を作成し、計算列にインデックスを付けて where 句で使用することを検討してください。