同语句不同条件 有的就很快,1秒
有的就超时select b.NDT图纸号,b.焊口号,UT.rpt_id as [ID_Report UT],UT.rpt_ReportNo as [UT NO] from vWeldBaseCh b
left outer join
( select rpt_SumType
,rpt_ID
,rpt_ReportNo
,item_ID_WeldBase
from vReportItems
where rpt_ID_Project in(5584) and rpt_SumType='UT'
group by rpt_SumType
,rpt_ReportNo
,rpt_id
,item_ID_WeldBase
) as UT
on UT.item_ID_WeldBase = b.id
where ID_Project in (5584)
order by b.NDT图纸号,b.焊口号
这会是什么原因呢?
有的就超时select b.NDT图纸号,b.焊口号,UT.rpt_id as [ID_Report UT],UT.rpt_ReportNo as [UT NO] from vWeldBaseCh b
left outer join
( select rpt_SumType
,rpt_ID
,rpt_ReportNo
,item_ID_WeldBase
from vReportItems
where rpt_ID_Project in(5584) and rpt_SumType='UT'
group by rpt_SumType
,rpt_ReportNo
,rpt_id
,item_ID_WeldBase
) as UT
on UT.item_ID_WeldBase = b.id
where ID_Project in (5584)
order by b.NDT图纸号,b.焊口号
这会是什么原因呢?
去掉,那么8万的数据只要1秒。如果把 b 表的 ID_Project in (5584)
5584改成其他,也只要两三秒而已ID_Project 加了非聚集索引
where ID_Project in (5584)
请把a表条件先执行完成了。慢在了你的a表返回数据过多,然后left join时候计算量太大。时快时慢是和你的系统当时状态有关。减少运算量自然就快了。