如果使用的过滤范围较小,则查询不会完成

时间:2013-07-20 04:41:08

标签: sql sql-server sql-server-2008

以下效果很好:

 SELECT * FROM Table1 T1 WHERE T1.StaffId IN (select Id From Staff WHERE DeptId=5)
    AND T1.LastUpdatedOn>'2013-07-01'

上述查询只返回38条记录。如果我有T1.LastUpdatedOn>'2013-07-02',则返回的行数应等于或小于38。

奇怪的是它适用于2013-07-07之前的日期。当我使用2013-07-08或更晚的日期时,查询永远不会完成。

可能出现什么问题?


添加更多信息:

实际SQL配置文件输出,只更改了列名:

select * from fish F where F.StaffId in 
(select Id from view_Staff where Dept='xxx' and Site='yyy')
and F.LastUpdatedOn>'2013-07-01'

上述内容占用CPU:749,读取:261243,写入:528,持续时间:747。

如果我只是将日期更改为“2013-07-08”,则查询未完成。当我杀了它,它已经消耗了CPU:88453,读取:7295813,写道:523和持续时间:88464。

当要返回的数据实际上更少时,增加的读数意味着什么?

0 个答案:

没有答案