日期:2014-05-17  浏览次数:20499 次

sql2008 r2 x64,不同时间段搜索有时快,有时非常缓慢(已排除其它原因,原因就是出在MSSQL上)
本帖最后由 rd16 于 2013-09-28 21:48:31 编辑
@startsj datetime,
@endjs datetime

SELECT * FROM 视图 WHERE I_时间 >=@startsj AND  I_时间 <=@endjs 


----------------------
我在 20:30 的时候测试,条件如下,要用9秒的时间
I_时间 >='2013-09-28 08:00:00' AND  I_时间 <='2013-09-29 08:00:00' 

----------------------
同样在 20:30 的时候测试,条件如下,只要用2秒的时间(查询条件去掉了时间)
I_时间 >='2013-09-28' AND  I_时间 <='2013-09-29' 

***********************************************************

怪事来了

我在 21:00 的时候测试,条件如下,只要用到2秒
I_时间 >='2013-09-28 08:00:00' AND  I_时间 <='2013-09-29 08:00:00'


也就是说,我在晚上8点测试很慢,但在9点测试快很多。(查询的条件是一样的)
==============================================

可以排除网络问题,因为我是在服务器的查询分析里测试的
可以排除资源占用问题,因为服务器是只装了MSSQL,而且没有连接。

------解决方案--------------------
这个你不能得到这个结论,也许8点时服务有其他服务在忙. 查询所花的时候与服务是否繁忙有关系
只有date长度10位,datetime长度为19位,理所查询19位的查询需要时间长,

如果你对日期建立了索引,同一表格估计没有多大差别,1秒以内
------解决方案--------------------
有没有在 【I_时间】 字段上建立索引呢,如果没有建,这个问题就没有讨论的意义。