c# - 如何加快在 SQL 数据库表中插入文本文件的速度?

标签 c# sql-server asp.net-mvc asp.net-mvc-4 bulkinsert

我的文本文件是

Town 1, Street Address, Street number 1, Region 1, 125 07
Town 1, Street Address 12, Street number 1, Region 34, 141 07
Town 2, Street Address 345, Street number 1, Region 23, 190 07
Town 2, Street Address 233, Street number 1, Region , 190 11

我目前执行以下操作来插入 SQL 数据库表。

 var fileContents = System.IO.File.ReadAllText(Server.MapPath(@"~/App_Data/zipcodes.txt"), Encoding.GetEncoding(1253));
 var Line = fileContents.Split(new string[] {"\n", "\r\n"}, StringSplitOptions.RemoveEmptyEntries);
 var Array = new string[5];
 foreach (string s in Line) 
     {
         Array = s.Split(',');
         storeDB.ZipCodes.Add(new ZipCodes {Town = Array[0], 
                                            StreetAddress = Array[1], 
                                            StreetNumber = Array[2], 
                                            Region = Array[3], 
                                            PostalCode = Array[4].Replace(" ", "")});
     }
     storeDB.SaveChanges();

由于文件包含 50000 多条记录,我想用另一种方式插入,更快。有什么建议吗?

最佳答案

您可以使用BULK INSERT

BULK INSERT db_name.schema.table 
FROM '...path .../zipcodes.txt' 
WITH ( 
     FIELDTERMINATOR = ',',
     ROWTERMINATOR = '\n' 
     );

如果需要,有许多配置可用,例如 CODEPAGEFIRSTROW 等等...

关于c# - 如何加快在 SQL 数据库表中插入文本文件的速度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32932286/

相关文章:

c# - sql查询统计每小时的数据输入

asp.net-mvc - Asp MVC,构建解决方案时 session 是否丢失?

c# - uid 和 sAMAccountName 有什么区别

c# - Windows 窗体应用程序的性能测试

c# - 在 c# .net 中检查 httppostedfilebase 图像宽度/高度的有效方法

sql-server - 如果 SQL Server 2008 r2 中存在,则删除列

SQL Server 日期表 : programatically find the last Sunday in a given month

c# - MVC3 参数化路由给出 404

javascript - 我的 JavaScript 格式有问题吗?

c# - LINQ - Where 表达式是否返回新实例或对对象实例的引用