У меня есть цикл, который выполняет хранимую процедуру в цикле с более чем 40000 итераций, например:
SqlCommand command = new SqlCommand("WriteDataToDB");
command.Connection = _connection;
command.CommandType = CommandType.StoredProcedure;
command.Parameters.Add("@SignalID", SqlDbType.Int).Value = Arg_Signal.SignalID;
command.Parameters.Add("@SignalStrength", SqlDbType.Float).Value = Arg_Signal.SignalSiggestion;
command.Parameters.Add("@Time", SqlDbType.BigInt).Value = Arg_Signal.TimeWasHit;
command.Parameters.Add("@Value", SqlDbType.Float).Value = Arg_Signal.ValueWasHit;
if (command.Connection.State != ConnectionState.Open)
{
command.Connection.Open();
}
command.ExecuteNonQuery();
Этот код вызывается из цикла, где я перехватываю и проверяю время каждой 1000-й итерации. Время, которое я получаю ниже:
[0]: "Начато 0 мс"
[1]: «1000 сделано 578,125мс»
[2]: «1000 сделано 921,875мс»
[3]: «1000 выполнено 1328,125мс»
[4]: «1000 сделано 1734,375мс»
[5]: «1000 сделано 1140,625мс»
[6]: «1000 сделано 1250мс»
[7]: «1000 выполнено 1703,125мс»
[8]: «1000 сделано 1718,75мс»
......
[31]: «1000 выполнено 3234,375мс»
[32]: «1000 выполнено 3390,625мс»
[33]: «1000 выполнено 3453,125мс»
[34]: «1000 сделано 3609,375мс»
[35]: «1000 выполнено 3765,625мс»
[36]: «1000 сделано 3796,875 мс»
[37]: "1000 сделано 3968,75 мс"
[38]: «1000 сделано 4093,75мс»
[39]: «1000 выполнено 4203,125мс»
[40]: «1000 выполнено 4546,875мс»
[41]: «1000 выполнено 4406,25 мс»
[42]: «Остановлено с общим значением 101093,75 мс 1515,625 мс»
У кого-нибудь есть идея, почему время выполнения увеличивается? Мне нужно запустить этот код с более чем миллионом итераций - по скорости его выполнения потребуется одна минута, чтобы выполнить одну итерацию ...
Большое спасибо