请各位高人帮忙看看这个问题,时间查询用变量超慢!在线等!
select
m.modelname+'/'+m.revision as Model,
a.TestTypeID as Station,
Isnull(c.name,'NONE') as FailCode,
p.id as PPID,
c.pass as Pass
--into #TempTable
from test a (nolock)
inner join product p (nolock) on p.id=a.productid
inner join model m (nolock) on m.id=p.modelid
left join teststepfail b (nolock) on b.testid=a.id
left join MeasurementDetailFail c (nolock) on c.teststepid=b.id
where
a.STARTDATE between '2007-10-23 08:00:00' and '2007-10-23 09:00:00'
and a.testtypeid in ('BoardFlash','BoardTrimBB','BoardTrimBT','BoardTrimGSM','BTEGSMTest','FinalFlash','FinalTestAccoustic','FinalTestLogic','FinalTestLogic2')
order by a.productid
我用上面的语句大概能用3-5s能得到结果,但用下面的语句确迟迟得不到结果。
两个语句唯一的区别在于后者时间条件我用变量了。
不知道是服务器的设置问题还是其它的什么问题,哪位高手有碰到过此问题望给点建议。谢了!
DECLARE @Date1 datetime
DECLARE @Date2 datetime
SET @Date1='2007-10-23 08:00:00'
SET @Date2='2007-10-23 09:00:00'
select
m.modelname+'/'+m.revision as Model,
a.TestTypeID as Station,
Isnull(c.name,'NONE') as FailCode,
p.id as PPID,
c.pass as Pass
from test a (nolock)
inner join product p (nolock) on p.id=a.productid
inner join model m (nolock) on m.id=p.modelid
left join teststepfail b (nolock) on b.testid=a.id
left join MeasurementDetailFail c (nolock) on c.teststepid=b.id
where a.STARTDATE between @Date1 and @Date2
and a.testtypeid in ('BoardFlash','BoardTrimBB','BoardTrimBT','BoardTrimGSM','BTEGSMTest','FinalFlash','FinalTestAccoustic','FinalTestLogic','FinalTestLogic2')
order by a.productid