Je suis un bloc de vous insérez les 5000 dossiers à la fois, un droit de bloc après l'autre. Les commandes sont créées dans une DLL séparée et peuvent appeler n'importe qui de 4 procédures stockées différentes. Y a-t-il une méthode d'insertion en masse qui pourrait accélérer ce processus? Actuellement, il faut environ 1,5 MS par enregistrement et voudrait faire descendre à environ .7 MS.Aide Optomizing Inserts en vrac dans Oracle à l'aide VB.NET
Merci,
Dave
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