小编som*_*omu的帖子

执行计划显示缺少索引但查询速度很快

在查看实际执行计划时,即使查询不到 1 秒,它也会显示缺少索引。

SELECT
    Account.AccountID,
    Account.Name
FROM
    account      
    LEFT OUTER JOIN accountfeaturesetting afs 
ON afs.accountid = account.accountid   
and afs.featureid = 'Schedules'
 and  
afs.settingid = 'EditReasons'           
WHERE
    ISNULL(afs.Value, '0') = '0'  
    AND EXISTS 
(SELECT 1 FROM program WHERE program.AccountID = account.AccountID
 AND program.Active = 1 
AND (program.ScheduleEditReasonFlags <> 0 
OR program.ScheduleEditReasonFields <> 0))
    AND account.IsMaster = 0
    AND account.BeginDate IS NOT NULL
Run Code Online (Sandbox Code Playgroud)

执行计划显示:

CREATE NONCLUSTERED INDEX [<Name of Missing Index, sysname,>]
ON [dbo].[Account] ([IsMaster],[BeginDate])
INCLUDE ([AccountID],[Name])
Run Code Online (Sandbox Code Playgroud)

即使查询只需要 1 秒,我们是否需要创建索引?应该在什么基础上创建索引?

我将把这个查询作为日常工作来运行。

index sql-server execution-plan

8
推荐指数
1
解决办法
842
查看次数

标签 统计

execution-plan ×1

index ×1

sql-server ×1