我有一个.NET项目,它接收数据,处理数据,然后将其写入SQLServer数据库。假设我有以下代码。
Private Sub InsertRecord(val1 As Integer, val2 As Integer, ByRef dbConnection As Data.SqlClient.SqlConnection)
Dim cmd As SqlCommand = Nothing
If dbConnection.State = ConnectionState.Open Then
Dim strSql As String = "Insert Into MyTable(Value1, Value2) Values(@Value1, @Value2)"
cmd = New SqlCommand(strSql, dbConnection)
cmd.Parameters.AddWithValue("@Value1", val1)
cmd.Parameters.AddWithValue("@Value2", val2)
Dim returnVal = cmd.ExecuteNonQuery()
If Not returnVal Then
'do other stuff
End If
cmd.Dispose()
End If
End Sub
有时我需要快速插入记录 - 比如每秒500。因此,它每秒只能处理大约200个插入。有没有办法将多个命令组合在一起进行处理?我需要知道每个插入语句的结果。
答案 0 :(得分:0)
您需要通过SqlBulkCopy
类提供的SQL Server批量插入。对所有行使用一个事务。它的速度非常快。
索引也会影响到这一点,以及许多其他事情。这里没有足够的信息来具体评论。