繁体   English   中英

不考虑非聚集索引的 Sql 服务器执行计划

[英]Sql server Execution Plans not considering the non clustered index

下面是我们在 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 

请让我知道如何避免索引扫描

您的索引未被使用,因为 ORDER BY 子句指定了一些不属于“KEY”子句或索引的 INCLUDE 子句的列,例如 CountryName。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM