记一次数据库时间范围搜索慢的原因

今天遇到一个很奇葩的问题,也可能是自己的经验不足。。。

select ID,Name,AddTime from Tab with(nolock) where AddTime>= '2017-10-01' AND AddTime<='2017-12-01'

 搜索的时候竟然用了两秒钟,当然是建了索引的(非聚集索引),这个时候搜索竟然 聚集索引扫描........

然后通过加了一个语句,提升到了19毫秒

SELECT ID,Name,AddTime FROM Tab WITH(NOLOCK) WHERE AddTime>= '2017-10-01' AND AddTime<='2017-12-01' ORDER BY AddTime DESC

 

使用的是MsSqlserver

然后在网上找了一些资料也不能找到原因。

了解的大神们,懂得留个言。再次谢过


料青山看我应如是
浏览 657回答 1
1回答

白衣染霜花

通常是走AddTime索引,但不知道为什么SQL Server现在认为走聚集索引扫描会比AddTime索引快,建议的解决方法:在AddTime索引中包含Name列
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

MySQL