Я пытаюсь выяснить, как лучше всего выполнить массовое обновление через мое мини-консольное приложение на сервере SQL. Я написал свой собственный способ массового обновления, например:
SqlCommand command = new SqlCommand();
command.Connection = new SqlConnection("Data Source=.;Initial Catalog=mydb;Integrated Security=SSPI");
command.Connection.Open();
for (int i = 0; i < items.Count; i = i + 1000)
{
var batchList = items.Skip(i).Take(1000).ToList();
for (int j = 0; j < batchList.Count(); j++)
{
command.CommandText += string.Format("update Items set QuantitySold=@s_id{0} where ItemID = @id{0};", j);
command.Parameters.AddWithValue("@s_id" + j, batchList[j].QuantitySold);
command.Parameters.AddWithValue("@id" + j, batchList[j].ItemID);
}
command.ExecuteNonQuery();
command = new SqlCommand();
command.Connection = new SqlConnection("Data Source=.;Initial Catalog=mydb;Integrated Security=SSPI");
command.Connection.Open();
}
command.Connection.Close();
Но я не очень доволен производительностью этого, обновление 50000-100000 записей в моей БД происходит довольно медленно, когда я делаю это так, даже если оно делает их партиями по 1000....
Есть ли какая-нибудь библиотека/решение, которое могло бы «ускорить процесс»?
Кто-нибудь может мне помочь ?