如何提高许多插入语句的速度?

时间:2013-09-24 18:25:44

标签: sql-server performance sqlcommand

我有一个.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个插入。有没有办法将多个命令组合在一起进行处理?我需要知道每个插入语句的结果。

1 个答案:

答案 0 :(得分:0)

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

索引也会影响到这一点,以及许多其他事情。这里没有足够的信息来具体评论。