2012-02-13 78 views
1

我必须在sqlserver数据库中插入超过200k条记录。哪种方法最适合批量插入?

我的想法是将数据添加到数据表然后做批量插入,但我的TL说:“将数据插入CSV文件格式并进行批量插入”。

哪种方法更快?

+2

使用[SqlBulkCopy](http://msdn.microsoft.com/zh-cn/library/system.data.sqlclient.sqlbulkcopy.aspx)是最有效的方法。但是你没有说什么是你的原始数据源。 – 2012-02-13 13:58:09

+0

为什么你认为编写一个创建数据表的C#程序,填充它然后插入会更快?我认为你的TL在正确的轨道上。 – 2012-02-13 15:17:00

回答

3

如果CSV文件已经创建SQL Bulk Insert是迄今为止性能和开发时间最快的。

如果您在应用程序中创建数据,您很可能会发现BulkCopy是最简单/最快的解决方案。

无论哪种方式200k记录不是一个大量的数据,应该是相当快的。

2

一般散装插入csv文件是高性能插入

BULK 
INSERT Table 
FROM ‘$path\$file.csv’ 
WITH 
(
    FIELDTERMINATOR = ‘;’, 
    ROWTERMINATOR = ‘\n’, 
    KEEPIDENTITY, 
    TABLOCK 
) 

我与添Schmelter答案可能会因数据源的变化一致。