한 번에 한 블록 씩 5000 개의 레코드 블록을 삽입하고 있습니다. 명령은 별도의 DLL로 만들어지며 4 개의 다른 저장 프로 시저 중 하나를 호출 할 수 있습니다. 이 속도를 높이는 대량 삽입 방법이 있습니까? 현명하게도 그것은 레코드 당 약 1.5 MS를 필요로하며 이것을 약 .7 MS로 낮추고 싶습니다.Help VB.NET을 사용하여 Oracle에 벌크 삽입물 최적화하기
감사합니다,
데이브
Shared Sub WriteCMSMessagesToDatabase(ByVal myFacility As FacilityType, ByVal Commands As List(Of System.Data.OracleClient.OracleCommand))
Dim oracleConnection As New OracleConnection
Dim _Cmd As New OracleCommand
Try
Dim aStopWatch As New Stopwatch
Using oracleConnection
aStopWatch.Start()
oracleConnection.ConnectionString = myFacility.ConnectionString
_Cmd.Connection = oracleConnection
_Cmd.CommandType = CommandType.StoredProcedure
oracleConnection.Open()
_Cmd.Transaction = oracleConnection.BeginTransaction
For Each aCmd As OracleCommand In Commands
_Cmd.CommandText = aCmd.CommandText
_Cmd.Parameters.Clear()
For Each aParam As OracleParameter In aCmd.Parameters
Dim prm As New OracleParameter
prm = CType(DirectCast(aParam, ICloneable).Clone, OracleParameter)
_Cmd.Parameters.Add(prm)
Next
_Cmd.ExecuteNonQuery()
Next
_Cmd.Transaction.Commit()
aStopWatch.Stop()
End Using
Catch ex As Exception
End Try
End Sub