运行一个非常简单的查询:
SELECT TOP 10 *
FROM WH.dbo.vw_data m
ORDER BY DateCompleted
大约需要4分钟。
执行的96%由以下内容处理:
警告意味着什么?它是如何解释的?
字段DateCompleted
未编入索引:这是否意味着除非我们使用索引搜索备用字段,或者向DateCompleted
添加索引,否则它总是很慢?
答案 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/