Giả sử chúng ta có một định nghĩa bảng như thế này:
CREATE TABLE MyTab (
ID INT IDENTITY(1,1) CONSTRAINT PK_MyTab_ID PRIMARY KEY
,GroupByColumn NVARCHAR(10) NOT NULL
,WhereColumn DATETIME NULL
)
Và một chỉ mục không được lọc như thế này:
CREATE NONCLUSTERED INDEX IX_MyTab_GroupByColumn ON MyTab
(GroupByColumn)
WHERE (WhereColumn IS NULL)
Tại sao chỉ mục này không "bao phủ" cho truy vấn này:
SELECT
GroupByColumn
,COUNT(*)
FROM MyTab
WHERE WhereColumn IS NULL
GROUP BY GroupByColumn
Tôi đang nhận kế hoạch thực hiện này:
KeyLookup dành cho vị từ WhereColumn IS NULL.
Đây là kế hoạch: https://www.brentozar.com/pastetheplan/?id=SJcbLHxO7