SQL Индекс сервера сканирует, когда полей больше? - PullRequest
0 голосов
/ 26 мая 2020

У меня проблемы с индексом, похоже, это не соответствует логике c. У меня есть несколько запросов, для которых нужны поля из одной таблицы; с этой целью я создал индекс, который охватит все из них. Один из этих запросов содержал предикат поиска «PatientID» и возвращал поля FirstName и LastName. Тем не менее, индекс, в котором были только эти поля (smallOne, показанный ниже), выполнял поиск, тогда как индекс, который был идентичным, за исключением добавления еще двух полей (оба INT), вместо этого выполнял сканирование. Почему больший индекс выполняет сканирование вместо поиска?

USE [Database Name goes here]
GO
CREATE NONCLUSTERED INDEX smallOne
ON [Schema].[TableName] (PatientID])
INCLUDE ([FirstName],[LastName])
GO

CREATE NONCLUSTERED INDEX largerOne
ON [Schema].[TableName] (PatientID])
INCLUDE ([FirstName],[LastName],XXXX,YYYY)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...