【发布时间】:2016-11-18 18:17:45
【问题描述】:
我在 SSIS 2008 中使用数据流任务。我将源设置为 sql 命令。这对我的情况很有用。但是,我只需要在某年之后从源表中取回数据。一旦我将此过滤器添加为 where 子句,性能似乎就会停止。尽管这不是理想的解决方案,但我已将所有内容都带回来,然后删除我不需要的内容。
这是 where 子句。我尝试了不同的方法来优化查询,但数据传输速度相同:
where table.Date > dateadd(YY,-6,getdate())
谁能解释一下 where 子句的问题?
【问题讨论】:
-
你能显示命令吗?
-
这是 where 子句。我尝试了不同的方法来优化查询,但数据传输速度相同 - 其中 table.Date > dateadd(YY,-6,getdate())
-
因为您每次比较记录时都在计算 dateadd 函数。您可以在 Select 语句之前将其设置在变量中并使用该变量吗?
-
在做出此声明之前,您需要确定这一点。这两个链接说
getdate()并不是对每一行都执行,我倾向于相信它。blogs.msdn.microsoft.com/conor_cunningham_msft/2010/04/23/…dba.stackexchange.com/questions/41655/… -
查看这两种情况的查询计划。听起来你有一个
table.Date的索引,扫描整个表比使用它更快。统计数据是最新的吗?
标签: sql sql-server performance ssis