【发布时间】:2017-08-20 13:15:58
【问题描述】:
我正在使用链接服务器和打开查询将数据从 DB2 迁移到 SQL Server,如下所示:
--SET STATISTICS IO on
-- Number of records are: 18176484
select * INTO [DBName].[DBO].Table1
FROM OPENQUERY(DB2,
'Select * From OPERATIONS.Table1')
插入此查询需要 9 小时 17 分钟(记录数 18176484)。
有没有其他方法可以更快地插入记录?我可以使用“OpenRowSet”函数进行批量插入吗?或者一个 SSIS 包会提高性能并且需要更少的时间?请帮忙
【问题讨论】:
-
我认为
bulk insert只是将您的插入过程分成几批,可能无助于加快过程 -
还有什么建议吗?
-
那张桌子上有标识列吗?如果是这样,您可以使用它将传输操作分成不同的批次,使用身份作为了解您已经迁移的记录的关键。分成不同的批次很可能有助于加快速度。
-
由于您的
openquery正在选择所有内容,因此无需再次尝试分布式查询,可能会提高 DB2 系统的性能... -
没有。但是我们可以插入一个。如果我实现标识列,更快的解决方案是什么?
标签: sql-server sql-server-2008 ssis data-migration