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

时间:2013-05-23 13:17:22

标签: sql sql-server database tsql query-tuning

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

SELECT TOP 10 *
FROM WH.dbo.vw_data m
ORDER BY DateCompleted

大约需要4分钟。

执行的96%由以下内容处理:

enter image description here

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

字段DateCompleted未编入索引:这是否意味着除非我们使用索引搜索备用字段,或者向DateCompleted添加索引,否则它总是很慢?

2 个答案:

答案 0 :(得分:8)

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

CREATE NONCLUSTERED INDEX IX_DATE_COMPLETED
    ON YourTable (DateCompleted); 

答案 1 :(得分:6)

  

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

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

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