Suponha que temos uma definição de tabela como esta:
CREATE TABLE MyTab (
ID INT IDENTITY(1,1) CONSTRAINT PK_MyTab_ID PRIMARY KEY
,GroupByColumn NVARCHAR(10) NOT NULL
,WhereColumn DATETIME NULL
)
E um índice não agrupado e filtrado como este:
CREATE NONCLUSTERED INDEX IX_MyTab_GroupByColumn ON MyTab
(GroupByColumn)
WHERE (WhereColumn IS NULL)
Por que esse índice não está "cobrindo" esta consulta:
SELECT
GroupByColumn
,COUNT(*)
FROM MyTab
WHERE WhereColumn IS NULL
GROUP BY GroupByColumn
Estou recebendo este plano de execução:
O KeyLookup é para o predicado WhereColumn IS NULL.
Aqui está o plano: https://www.brentozar.com/pastetheplan/?id=SJcbLHxO7