ISNULL() i select-klausulen har ubetydelig indflydelse på ydeevnen. I where-klausulen kan det på den anden side have en meget stor indflydelse på ydeevnen, da det forhindrer optimizeren i at bruge et indeks på den kolonne.
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.
Så når du bruger isnull() i en where-klausul, skal du evaluere, om det forhindrer forespørgselsoptimeringsværktøjet i at bruge et indeks. Hvis ja, overvej at oprette en beregnet kolonne med resultatet if isnull(col1, 0) og indekser den beregnede kolonne og brug den i din where-klausul.