0

以下工作非常好:

 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 Profile 输出,仅更改了列名:

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。

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

4

0 回答 0