哪种方法最适合批量插入?
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 的观点,答案可能因您的数据源而异。
【讨论】:
以上是关于哪种方法最适合批量插入?的主要内容,如果未能解决你的问题,请参考以下文章