ISNULL () trong mệnh đề select có ảnh hưởng không đáng kể đến hiệu suất. Mặt khác, trong mệnh đề where-có thể có tác động rất lớn đến hiệu suất, vì nó ngăn trình tối ưu hóa sử dụng chỉ mục trên cột đó.
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.
Vì vậy, khi sử dụng isnull () trong mệnh đề where, hãy đánh giá xem nó có ngăn trình tối ưu hóa truy vấn sử dụng chỉ mục hay không. Nếu vậy, hãy cân nhắc tạo một cột được tính với kết quả nếu là không (col1, 0) và lập chỉ mục cột đã tính và sử dụng nó trong mệnh đề where của bạn.