从复杂的SQL查询中获取Deltas

时间:2016-12-17 15:06:16

标签: sql sql-server sql-server-2012 load

我有一个复杂的SQL查询,可以连接超过15个表,并带来30列。 知道源表上有更新日期列。

如何从该查询中获取所有更新/插入信息的增量?

在where子句中添加15个条件(DateDiff(d,T1.Update_Date,getdate()) <= @delta OR DateDiff(d,T2.Update_Date,getdate()) <= @delta OR .....)既不高效也不方便

1 个答案:

答案 0 :(得分:0)

通常,您现在想要在where子句中的列上使用函数。这使优化器更难运行。

而不是:

DateDiff(T1.Update_Date, getdate()) <= @delta

你想要这样的东西:

t1.Update_date <= dateadd(day, - @delta, getdate())

(这是SQL Server语法;这个想法是相同的,但其他数据集的语法不同)。

如果要检查每个表中的列,则需要列出列。因为您要按OR连接条件,这可能不会对性能产生太大影响。