哪种方法最适合批量插入?

Posted

技术标签:

【中文标题】哪种方法最适合批量插入?【英文标题】:which method is best for Bulk Insert? 【发布时间】:2012-02-13 13:49:54 【问题描述】:

我必须在 sqlserver 数据库中插入超过 20 万条记录。

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

哪种方法更快?

【问题讨论】:

使用SqlBulkCopy 是最有效的方式。但是你还没有说你的原始数据源是什么。 为什么您认为编写一个创建数据表、填充它、然后插入的 C# 程序会更快?我认为您的 TL 走在正确的轨道上。 【参考方案1】:

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

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

无论如何,200k 条记录并不是一个庞大的数据量,应该相当快。

【讨论】:

【参考方案2】:

通常批量插入csv文件是高性能插入

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

我同意 Tim Schmelter 的观点,答案可能因您的数据源而异。

【讨论】:

以上是关于哪种方法最适合批量插入?的主要内容,如果未能解决你的问题,请参考以下文章

百万级别数据批量插入 MySQL,哪种方式最快?

1亿条数据批量插入 MySQL,哪种方式最快

任何为高速批量插入提供体面方法的 ORM?

快速批量插入1个亿的数据,适合大部分数据库的方法

快速批量插入1个亿的数据,适合大部分数据库的方法

Word批量调整插入图片大小