泄漏等级1的执行计划引用

why*_*heq 3 sql t-sql database sql-server query-tuning

运行一个非常简单的查询:

SELECT TOP 10 *
FROM WH.dbo.vw_data m
ORDER BY DateCompleted
Run Code Online (Sandbox Code Playgroud)

大约需要4分钟.

执行的96%由以下内容占用:

在此输入图像描述

警告意味着什么,它是如何解释的?

该字段DateCompleted未编入索引:这是否意味着除非我们使用索引命中备用字段,否则添加索引DateCompleted将始终很慢?

Dar*_*ren 8

绝对索引DateCompleted.您可以从执行计划中看到,在对此字段进行排序时会发生96%的成本,因此添加索引是有意义的.

CREATE NONCLUSTERED INDEX IX_DATE_COMPLETED
    ON YourTable (DateCompleted); 
Run Code Online (Sandbox Code Playgroud)

  • 他们通常不评论!不过,我也会投票. (3认同)

Sto*_*leg 6

当排序操作无法在内存中完成并且必须溢出到tempdb时,SQL Server会引发排序警告

本文回答了您关于排序警告的问题(链接再次更新,感谢@quarkonium:

http://blogs.solidq.com/en/sqlserver/identifying-solving-sort-warnings-problems-sql-server/