将数百万行插入SQL Server数据库的最佳方法

MIK*_*IKE 1 c# sql-server entity-framework

我正在从多个提要中收集数据,包括api,excel文件,文本文件,word文件.我使用关系数据库来存储所有关系.最多有10个一对多或多对多的关系.

我正在使用的方法是将每个条目写入一个.csv文件,然后调用存储过程来批量插入所有条目.所以在这种情况下,我可以为我的数据库中的每个表分别有10个文件.

我遇到了两个问题:

  • 将文件传输到数据库服务器(同一网络)
  • 主键,我需要使用guid而不是自动增量

性能的最佳方法是什么?

Jam*_*iec 5

2个字: BULK INSERT

如果你已经有一个csv文件,这只是编写一些SQL或C#(你喜欢的)来执行批量插入的情况.

以下是SQL文档:https://msdn.microsoft.com/en-gb/library/ms188365.aspx

BULK INSERT MySchema.MyTable
FROM 'c:\myfile.csv'
WITH 
  (
     FIELDTERMINATOR =',',
     ROWTERMINATOR ='\n'
  );
Run Code Online (Sandbox Code Playgroud)

和C#docs:https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlbulkcopy%28v=vs.110%29.aspx