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]:“开始0ms”
[1]:“1000完成578.125ms”
[2]:“1000完成了921.875ms”
[3]:“1000完成1328.125ms”
[4]:“1000完成1734.375ms”
[5]:“1000完成1140.625ms”
[6]:“1000完成1250ms”
[7]:“1000完成1703.125ms”
[8]:“1000完成1718.75ms”
……
[31]:“1000完成3234.375ms”
[32]:“1000完成3390.625ms”
[33]:“1000完成3453.125ms”
[34]:“1000完成3609.375ms”
[35]:“1000完成3765.625ms”
[36]:“1000完成3796.875ms”
[37]:“1000完成3968.75ms”
[38]:“1000完成4093.75ms”
[39]:“1000完成4203.125ms”
[40]:“1000完成4546.875ms”
[41]:“1000完成4406.25ms”
[42]:“停止总计101093.75ms 1515.625ms”
有谁知道为什么这些执行时间在增加?我需要运行这个代码超过一百万次迭代 – 按照它的速度执行一次迭代需要一分钟……
非常感谢
解决方法
如果没有特殊逻辑或者您可以在.NET中执行该逻辑,那么请查看执行Bulk Insert.您可以通过使用System.Data.sqlClient.sqlBulkcopy类来完成此操作.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。