Answers:
有几种选择。这是我想到的主要内容。
SSIS -SQL Server集成服务:这是SQL Server ETL工具,您可以将数据从几乎任何源移动到几乎任何目标,而且速度可能很快。
BCP-批量复制程序:这是SQL Server附带的命令行工具。将文本文件移动到SQL Server上非常好,或者您可以从一个SQL Server导出为本机格式,然后使用相同格式将其导入另一SQL Server。BCP也非常快,但比SSIS受到更多限制。
INSERT INTO表名SELECT字段列表FROM othertable:这假设您正在从同一服务器上的一个SQL表移动到另一个SQL表。这是最快的,但要达到50万行,您正在看一笔相当大的交易,或者必须像您所说的那样将其拆分。
OPENROWSET:这是一个SQL Server函数,可让您从各种格式将数据提取到表中。它也应该相当快,但是我没有做太多工作。
一般说明:您的主键是mbr_id。如果这是存储在源数据中的内容(而不是作为标识列),那么如果源数据按mbr_id顺序插入,插入将更快。
由于您正在使用。NET,您实际上可以流式传输数据而无需调用外部进程。您将使用表值参数。请参阅我在StackOverflow上的答案以获取详细信息以及此方法的另一个变体的链接:
为了使其更快(尤其是这是表的初始填充),还请参见有关删除索引的信息。