以下工作非常好:
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。
当要返回的数据实际上更少时,增加的读取意味着什么?