使用表变量的SQL优化

时间:2019-07-02 15:08:16

标签: sql sql-server

我们有一个旧的存储过程,需要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联接起来。

脚本现在运行得快得多。

您认为我的方法有潜在的陷阱吗?

0 个答案:

没有答案