我们有一个旧的存储过程,需要3分钟以上才能完成。
类似这样的东西:
Select *
from Table A
left Job Table B on A.ID = B.PID
Where
...
A.StartDate > @Date1
And A.EndDate < @Date2
运行缓慢的一个原因是表A有超过2000万行。
两个表都应用了正确的索引。
为解决此问题,我创建了一个表变量(结构与表A相同),并用
填充Select *
From TableA
Where A.StartDate > @Date1
And A.EndDate < @Date2
然后我将此表变量与表B联接起来。
脚本现在运行得快得多。
您认为我的方法有潜在的陷阱吗?