To normalne. Nie użyje indeksu, chyba że predykat jest wystarczająco selektywny, aby to uzasadnić.
Wygląda na to, że zdecydowana większość rekordów nie ma wartości NULL, więc zamiast szukać ich za pomocą indeksu nieklastrowanego, trzeba wykonywać mnóstwo wyszukiwań zakładek i losowych operacji we/wy, aby pobrać pozostałe kolumny w celu zwrócenia, jest to szybsze i bardziej wydajne po prostu zeskanuj cały indeks klastrowy.
Możesz użyć FORCESEEK
aby wymusić zachowanie, o którym mówisz, że chcesz. Prawdopodobnie okaże się, że czas potrzebny i statystyki we/wy przebijają się przez dach w porównaniu ze skanowaniem indeksu klastrowego.
SET STATISTICS IO ON
SELECT * FROM
YourTable WITH (FORCESEEK)
WHERE YourCol IS NOT NULL