Supongamos que tenemos una definición de tabla como esta:
CREATE TABLE MyTab (
ID INT IDENTITY(1,1) CONSTRAINT PK_MyTab_ID PRIMARY KEY
,GroupByColumn NVARCHAR(10) NOT NULL
,WhereColumn DATETIME NULL
)
Y un índice filtrado no agrupado como este:
CREATE NONCLUSTERED INDEX IX_MyTab_GroupByColumn ON MyTab
(GroupByColumn)
WHERE (WhereColumn IS NULL)
Por qué este índice no está "cubriendo" para esta consulta:
SELECT
GroupByColumn
,COUNT(*)
FROM MyTab
WHERE WhereColumn IS NULL
GROUP BY GroupByColumn
Estoy recibiendo este plan de ejecución:
KeyLookup es para el predicado WhereColumn IS NULL.
Aquí está el plan: https://www.brentozar.com/pastetheplan/?id=SJcbLHxO7