有一段这样的SQL
WITH VUNIT as (
通过递归调用查询数据
(大概两万条数据)
)
select count(*) from TableA
where EXISTS (
select VUNIT.iUnidId
from VUNIT
where VUNIT.vcUnitLevel = TableA.vcUnitLevel
)
and TableA.dtStartDate <= '2011/08/15' and TableA.dtEndDate >= '2011/08/21'
不好意思,开发环境里的代码和数据不能带出来,靠回忆只能写成这样了。
其中,dtStartDate和dtEndDate都是datetime类型的数据,TableA的数据有两万多条,符合检索条件的才42条,但耗时半个小时都不能执行完
如果把select count(*) 改成select *, 或者用DateDiff函数运行,只要一秒钟。
这是什么问题?我觉得select count(*) 比select *执行得快才对呀?
希望高人指点
xiaohe.feng