Sql Планы выполнения сервера без учета некластеризованного индекса - PullRequest
0 голосов
/ 27 марта 2020

Ниже приведен запрос, у нас есть некластеризованный индекс в столбце Questionnaire_Number, но оптимизатор выбирает сканирование индекса, и он выполняет почти 39% операций запроса.

 SELECT
  [Country],
  [Site],
  [Subject],
  [Questionnaire],
  [Ques],
  [Res],
  [ReceivedDt],
  [CompletedDt],
  [CompletedDtlc],
  [Questionnaire],
  [RecordUpdaChange],
  [ChangeRequesiser],
  [RecordUpdated],
  [CompletedQuestionnaireId],
  [EnrollmentDt],
  [AppVersion],
  [CompletedBY],
  [ModeofEntry],
  [StudyDay]
FROM [dbo].Report_PerformTest A
JOIN #Questionnaire_Number Q
  ON A.Questionnaire_Number = Q.Questionnaire_Number
ORDER BY CountryName, Site, Subject, CompletedDateTimeLc

План выполнения

введите описание изображения здесь

Подробности индекса:


CLUSTERED INDEX : CompletedQuestionnaireId;    

CREATE NONCLUSTERED INDEX NIX_Dairy_data_Summary
ON [Report_performTest] SiteID,SubjectNo
INCLUDE   All selected columns   

CREATE NONCLUSTERED INDEX NIXQues_Dairy_data_Summary
ON [Report_performTest](Questionnaire_Number)
INCLUDE  All selected columns 

Пожалуйста, дайте мне знать, как избежать сканирования индекса на этом

1 Ответ

0 голосов
/ 27 марта 2020

Ваши индексы не используются, поскольку в предложении ORDER BY указаны некоторые столбцы, которые не являются частью предложения «KEY» или предложения INCLUDE вашего индекса, например CountryName.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...