C# - 使用存储过程插入多行

Dar*_*der 8 c# sql-server ado.net stored-procedures

我有一个对象列表,这个列表包含大约400万个对象.有一个存储过程,它将对象属性作为参数,进行一些查找并将它们插入表中.

将这400万个对象插入db的最有效方法是什么?

我怎样做 :

-- connect to sql - SQLConnection ...

foreach(var item in listofobjects)
{    
   SQLCommand sc = ...

   // assign params

   sc.ExecuteQuery();    
}
Run Code Online (Sandbox Code Playgroud)

这真的很慢.

有一个更好的方法吗?

这个过程将是一个预定的任务.我将运行这个小时,所以我确实期望像这样的高容量数据.

SQL*_*ace 8

看一下SqlBulkCopy类

根据你的评论,将数据转储到临时表中,然后根据proc进行查找并插入真实的表集......它会比逐行快得多