C# en parallèle de multiples insertions dans la base de données

J'ai un datatable avec environ 3000 lignes. Chacune de ces lignes doivent être insérées dans une table de base de données. Actuellement, je suis en cours d'exécution d'une boucle foreach:

obj_AseCommand.CommandText = sql_proc;
obj_AseCommand.CommandType = CommandType.StoredProcedure;
obj_AseCommand.Connection = db_Conn;
obj_AseCommand.Connection.Open();

foreach (DataRow dr in dt.Rows)                
{
    obj_AseCommand.Parameters.AddWithValue("@a", dr["a"]);
    obj_AseCommand.Parameters.AddWithValue("@b", dr["b"]);
    obj_AseCommand.Parameters.AddWithValue("@c", dr["c"]);

    obj_AseCommand.ExecuteNonQuery();
    obj_AseCommand.Parameters.Clear();
}

obj_AseCommand.Connection.Close();

Pouvez-vous me conseiller comment puis-je faire en parallèle exécuter la SP dans la base de données depuis l'approche ci-dessus prend environ 10 minutes pour insérer 3000 lignes.

Juste par curiosité: pourquoi êtes - vous l'ajout de 3000 lignes de la base de données avec une procédure stockée? si c'est à partir de certains des fichiers d'entrée, pourquoi ne pas l'importer directement dans la base de données avec quelques outil de gestion?
La datatable est rempli à partir d'une autre base de données une base de données master. Mon but est de récupérer des données à partir de la base de données master et insérez le dans ma base de données.La procédure stockée est utilisée pour insérer des données dans ma base de données.
Pourquoi ne pas faire usage de l'insertion en bloc, ou un lien de serveur, et le SQL fetch et insérer les données
Difficile, je pense que c'est beaucoup mieux de le faire avec bulk insert / import / quel que soit votre SGBD appelle. Il vous permettra d'économiser beaucoup de peine et le temps.

OriginalL'auteur Harsh | 2015-01-05