最近,我碰到一个问题。一个很多数据的表。同一个语句,在mssql 2000和mssql 2005里的速度完全不同。问题在于使用索引与否。
这个sql语句为:
select top 1 * from table1 where createddate > '2011-01-01 00:00:00'
其中的createddate已经做了索引。在mssql 2000里,索引被使用,所以速度很快。但是在mssql 2005里,索引没有被使用到。所以慢得要死。问题出现在那里,希望高手指导一下。
为了让索引有效, 把以上语句改写一下,mssql 2005就能自动使用索引了。
select top 1 * from table1 where createddate > '2011-01-01 00:00:00' order by createddate
用以上语句,mssql 2005返回结果很快。