传输大量数据的最佳实践.使用存储过程或SQL批量副本



我从一个服务器的不同数据库和表中有大量数据,要将其传输到另一台服务器的不同数据库和表中。我已经创建了一个存储过程,并且我的C#应用程序只是将一个参数传递到我的存储过程中。

最近,我发现了 sql bulk ,它被许多程序员用于传输大量数据。

因此,这两个是传输大量数据的最佳做法,为什么?

个人,而不是通过批量复制,如果数据是合理的尺寸,我会做以下操作:

  1. 将表复制到新的(空)数据库中,
  2. 断开连接并将新数据库移至另一台服务器,
  3. 将数据库连接到新服务器,
  4. 将数据加载到您想要的任何目标表中。

当然,如果这是您需要多一次的事情,那可能不是最佳的。但是,对于一次性,它应该可以解决问题,而不必摆弄其他方法。

散装插入快速燃烧!我认为任何事情都比这样做更快。

BULK INSERT EmployeeDB.dbo.Employees
FROM 'C:DataEmployeeData_c.dat'
WITH 
  (
    DATAFILETYPE = 'char',
    FIELDTERMINATOR = ',',
    ROWTERMINATOR = 'rn'
  );

有关更多详细信息,请参见下面的链接。

https://www.simple-talk.com/sql/learn-sql-server/bulk-inserts-via-tsql-in-sql-sql-server/

最新更新