使用批处理选择大量数据,并使用SSIS将数据插入到其他表中

时间:2018-04-30 16:46:25

标签: sql-server tsql ssis batch-processing

我有一张几百万行的表。我需要使用SSIS将批量数据传输到另一个表。我尝试使用以下查询来获取批量记录,但循环不会停止。

while exists (select top 1 * from dbo.test
               where (date > '2018-04-25'
                       and date < '2018-04-27'))
Begin

select * from dbo.test
where id in ( select top (1000) id
               where (date > '2018-04-25'
                      and date < '2018-04-27'))
                      order by date asc 
End

1 个答案:

答案 0 :(得分:2)

这应该是您需要的唯一查询:

config.ini

在SSIS中,在此操作的“数据流”选项卡的“目标编辑器”中,为“每批次行数:”设置输入select * from dbo.test where id in ( select id where (date > '2018-04-25' and date < '2018-04-27')) 。没有必要尝试使用循环和前1000名。我强烈建议不要采用这种方法,因为性能会更差。可能是指数级的。