优化移动记录的过程在100万到1000万之间

时间:2011-08-21 07:43:58

标签: c# tsql sql-server-2008

如果您不得不按摩数据并将其从一台服务器上的数据库移动到另一台服务器上的数据库,您会怎么做? 按摩数据仅限于使用CONVERT或CAST。此过程由C#.NET中的Data Loader调用。 SQL脚本在SQL Server 2008中执行 你会建议使用SQLBulkCopy,LINQ to SQL来完成这个过程,还是应该只使用INSERT中的INSERT ........ SELECT? 数据可能在100万到1000万行的范围内 我很感激您对此流程的看法,以验证执行上述操作的优化流程。

3 个答案:

答案 0 :(得分:2)

这里应该避免使用LINQ-to-SQL;它没有针对此进行优化(针对单个对象/记录 - 不是批量)。可以使用交叉数据库(可能是链接服务器)插入/选择,但我会查看批量选项。我怀疑SSIS(前DTS)可能在这里使用 - 它实际上是设计的。如果需要托管选项,从源(ExecuteDataReader())连接到SqlBulkCopy到目标的数据读取器将执行与SSIS相同的功能(使用相同的批量协议)。

答案 1 :(得分:0)

考虑一下您将要运行的数据量,我会亲自选择ReplicationServices http://msdn.microsoft.com/en-us/library/ms151198.aspx并避免编程解决方案(如果可能的话)。

答案 2 :(得分:0)

我之前有过这样的问题。我通过SQLBulkCopy解决了这个问题。 bcp性能很好。