To je normální. Nepoužije index, pokud predikát není dostatečně selektivní, aby to odůvodnil.
Zdá se, že naprostá většina záznamů není NULL, takže místo jejich hledání pomocí neshlukovaného indexu je pak rychlejší a efektivnější provádět spoustu vyhledávání záložek a náhodných I/O k načtení zbývajících sloupců. stačí prohledat celý seskupený index.
Můžete použít FORCESEEK
vynutit si chování, které říkáte, že chcete. Pravděpodobně zjistíte, že čas strávený a I/O statistiky jsou v porovnání s prohledáváním clusteru indexu nadprůměrné.
SET STATISTICS IO ON
SELECT * FROM
YourTable WITH (FORCESEEK)
WHERE YourCol IS NOT NULL