2013-09-24 49 views
2

我有一个.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

您需要通过SqlBulkCopy类提供的SQL Server批量插入。对所有行使用一个事务。这将是非常快速的。

索引也扮演这一点,以及许多其他事情。没有足够的信息来特别评论。