T-SQL N'EST PAS NULL vs Performances NOT NULL

J'ai lu beaucoup de ne pas utiliser des opérateurs négatifs comme NOT IN et NOT EXISTS et comment inverser votre logique aux opérateurs positifs, par exemple en utilisant IN plutôt que IN pourrait conduire à de très bonnes performances.

De toute façon, j'ai une vue avec beaucoup d'opérateurs CASE WHEN et de vérifier certaines conditions. Je me suis demandé (encore j'ai été capable de find un article, une question ou un exemple spécifique pour cela) sera une différence de performance en utilisant IS NOT NULL et IS NULL ?

Les deux peuvent être effectués comme une search d'index.

L'un d'entre eux cherche au début de l'index en lisant toutes les lignes avec NULL puis s'arrête lorsqu'il rencontre le premier NOT NULL et l'autre cherchant dans la première NOT NULL puis en lisant tout le rest de l'index.

À less que l'index couvre cependant une search ne peut pas être utilisé dans les deux cas, car il revient à la sélectivité. Si vous avez plusieurs valeurs NULL , NOT NULL est hautement sélectif. Vous pouvez envisager de créer un index filtré sur cette colonne, comme dans l'exemple ci-dessous .