1,000 万のデータを含むデータセットがあり、それをループして、データセットの値を使用してカウント 2,500 万のベース テーブルを更新しています。
where句で使用されるフィールドは主キーです。
しかし、それでもパフォーマンスが得られず、1時間で10万レコードしか更新されません。
Oracleでクエリを実行する時間を最適化してスピードアップするにはどうすればよいですか。
コマンドオブジェクト、vb.netの接続オブジェクトを使用しています
次の関数は、クエリを更新するために 1,000 万回実行されました。
public cmd_obj as new oledb.oledbcommand
Strquery="update Table1 set field1='Value from dataset' where field2='value from dataset'" ' where field2 is primary key in base table
Public Function Executenonquery(ByVal Strquery As String) As Int32
Dim intUpdated As Int32 = 0
Try
If VerifyOracleLogin() = True Then ' check oracle connection
cmd_obj.Connection = dbconn
cmd_obj.CommandText = Strquery 'strquery has update query
intUpdated = cmd_obj.ExecuteNonQuery()
return intUpdated
End If
Catch ex As Exception
WriteToErrorLog("Query Execution Error : " & Strquery, ex.Message)
Return -1
End Try
End Function