c# – 在循环中调用sqlCommand,每步增加执行时间
我有一个循环,在循环中执行存储过程超过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]:“开始0ms” [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类来完成此操作. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |