最近,我碰到一个问题。一个很多数据的表。同一个语句,在mssql 2000和mssql 2005里的速度完全不同。问题在于使用索引与否。
这个sql语句为:
selecttop 1 * from table1 where createddate > '2011-01-01 00:00:00'
其中的createddate已经做了索引。在mssql 2000里,索引被使用,所以速度很快。但是在mssql 2005里,索引没有被使用到。所以慢得要死。问题出现在那里,希望高手指导一下。
为了让索引有效, 把以上语句改写一下,mssql 2005就能自动使用索引了。
selecttop 1 * from table1 where createddate > '2011-01-01 00:00:00' order by createddate
用以上语句,mssql 2005返回结果很快。
本文探讨了一个有趣的现象:相同的SQL查询语句在不同版本的MS SQL Server中表现出了不同的性能特征。尤其是在涉及索引使用的情况下,MS SQL Server 2000与2005之间的差异尤为显著。通过对查询进行简单修改,成功提升了MS SQL Server 2005上的查询效率。
971

被折叠的 条评论
为什么被折叠?



