I'm finding it hard to believe that this is "as good as it gets" when inserting rows into a database. The code below inserts 40,000 rows in about 1.7 seconds. I have read other posts that folks are getting much quicker times. Is this as good as it gets? Thank you for any insight.
Code:
Private Sub InsertTest(ByVal Connection As SqlConnection)
Using DBTrans As SqlTransaction = Connection.BeginTransaction
Using cmdSQL As SqlCommand = Connection.CreateCommand()
cmdSQL.Transaction = DBTrans
cmdSQL.CommandText = "INSERT INTO TestCase(MyValue) VALUES(@Field1); INSERT INTO TestCase(MyValue) VALUES(@Field2); INSERT INTO TestCase(MyValue) VALUES(@Field3); INSERT INTO TestCase(MyValue) VALUES(@Field4)"
Dim Field1 As SqlParameter = cmdSQL.CreateParameter()
Field1.ParameterName = "@Field1"
Dim Field2 As SqlParameter = cmdSQL.CreateParameter()
Field2.ParameterName = "@Field2"
Dim Field3 As SqlParameter = cmdSQL.CreateParameter()
Field3.ParameterName = "@Field3"
Dim Field4 As SqlParameter = cmdSQL.CreateParameter()
Field4.ParameterName = "@Field4"
cmdSQL.Parameters.Add(Field1)
cmdSQL.Parameters.Add(Field2)
cmdSQL.Parameters.Add(Field3)
cmdSQL.Parameters.Add(Field4)
For i As Integer = 1 To 10000
Field1.Value = i
Field2.Value = i + 1
Field3.Value = i + 2
Field4.Value = i + 3
cmdSQL.ExecuteNonQuery()
Next
End Using
DBTrans.Commit()
End Using
End Sub
Comment