C# SQL insert de commande

Quelqu'un peut me dire les 2 façons de l'insertion d'enregistrement crée de meilleures performances?

Cas 1

SqlCommand cmd = new SqlCommand();

for (int i = 0; i < 10000; i++)
{
  cmd = new SqlCommand("insert into test(id, name) value('" + i + "', '" + i + "')");
  cmd.ExecuteNonQuery();
}

Cas 2

string sql = null;

for (int i = 0; i < 10000; i++)
{
  sql += "insert into test(id, name) value('" + i + "', '" + i + "')";
}

SqlCommand cmd = new SqlCommand(sql, conn);
cmd.ExecuteNonQuery();
Avez-vous l'exécution d'un simple test de chronométrage? Exécuter chacun de 10 000 fois, et de voir celui qui s'exécute plus rapidement.
De même, mais le cas est préférée. Même parce que vous allez utiliser le regroupement de connexion.
Tout d'abord: STOP la concaténation de votre code SQL!! C'est une invitation à hacker de vous attaquer avec injection SQL! Utiliser les requêtes paramétrées à la place!
vraiment?!?!?? Vous pensez que la création de 10'000 SqlCommand instances et de leur exécution, un par un, est tout aussi rapide que la création d'une instance unique et l'exécution par juste une fois???
Vous avez raison, il serait plus rapide.

OriginalL'auteur RoyT | 2011-11-21