SQL文字列のリストを取得してデータベースに対して実行する、私が作成したこの汎用ルーチンがあります。この作業を高速化する方法はありますか? 通常、一度に 200 の挿入、削除、または更新が行われます。更新、挿入、削除が混在する場合があります。クエリをタイプ別に分けた方がよいでしょうか (つまり、挿入をまとめてグループ化し、次に更新してから削除します)。
ms access データベースに対してこれを実行し、vb.net 2005 を使用しています。
Public Function ExecuteNonQuery(ByVal sql As List(Of String), ByVal dbConnection as String) As Integer
If sql Is Nothing OrElse sql.Count = 0 Then Return 0
Dim recordCount As Integer = 0
Using connection As New OleDb.OleDbConnection(dbConnection)
connection.Open()
Dim transaction As OleDb.OleDbTransaction = connection.BeginTransaction()
'Using cmd As New OleDb.OleDbCommand()
Using cmd As OleDb.OleDbCommand = connection.CreateCommand
cmd.Connection = connection
cmd.Transaction = transaction
For Each s As String In sql
If Not String.IsNullOrEmpty(s) Then
cmd.CommandText = s
recordCount += cmd.ExecuteNonQuery()
End If
Next
transaction.Commit()
End Using
End Using
Return recordCount
終了機能