Elm*_*mex 0 .net c# sql-server csv
是否有一种高性能的方法可以将非常大的CSV文件(大小为几千兆字节)加载到带有.NET的SQL-Server 2008数据库中?
我会把这个CSV阅读器与SqlBulkCopy
; 即
using (var file = new StreamReader(path))
using (var csv = new CsvReader(file, true)) // true = has header row
using (var bcp = new SqlBulkCopy(connection)) {
bcp.DestinationTableName = "TableName";
bcp.WriteToServer(csv);
}
Run Code Online (Sandbox Code Playgroud)
这使用批量复制API来执行插入,同时使用完全托管(和快速)IDataReader
实现(关键的是,它流式传输数据,而不是一次性加载所有数据).