我有一个循环,它在循环中执行超过 40,000 次迭代的存储过程,如下所示:
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.875ms”
[3]:“1000 完成 1328.125ms”
[4]:“1000 完成 1734.375ms”
[5]:“1000 完成 1140.625ms”
[6]:“1000 完成 1250 毫秒”
[7]:“1000 完成 1703.125ms”
[8]:“1000 完成 1718.75ms”
……
[31]:“1000 完成 3234.375ms”
[32]:“1000 完成 3390.625 毫秒”
[33]:“1000 完成 3453.125ms”
[34]:“1000 完成 3609.375ms”
[35]:“1000 完成 3765.625 毫秒”
[36]:“1000 完成 3796.875 毫秒”
[37]:“1000 完成 3968.75 毫秒”
[38]:“1000 完成 4093.75 毫秒”
[39]:“1000 完成 4203.125ms”
[40]:“1000 完成 4546.875 毫秒”
[41]:“1000 完成 4406.25 毫秒”
[42]:“总停止 101093.75ms 1515.625ms”
有谁知道为什么这些执行时间会增加?我需要以超过一百万次迭代运行此代码 - 按照它的速度执行一次迭代需要一分钟......
非常感谢