我无法理解为什么发送参数到插入函数在.net紧凑框架中运行缓慢。
例如,在2秒内插入代码
cn = New SqlCeConnection(strstring)
cmd = New SqlCeCommand
Dim rs As SqlCeResultSet
cmd.Connection = cn
cmd.CommandType = CommandType.TableDirect
cn.Open()
Dim rec As SqlCeUpdatableRecord
Dim DB As New Db
Dim a As Integer = 1
Dim b As Integer = 2
For i As Integer = 0 To 1000
If i = 0 Then
cmd.CommandText = "A"
rs = cmd.ExecuteResultSet(ResultSetOptions.Updatable)
rec = rs.CreateRecord()
End If
Try
rec.SetValue(0, a)
rec.SetValue(1, b)
rs.Insert(rec
Catch ex As Exception
End Try
Next
但是当我将参数a和b发送到插件子时,此代码会在13秒内完成。性能下降的是什么?
cn = New SqlCeConnection(strstring)
cmd = New SqlCeCommand
Dim rs As SqlCeResultSet
cmd.Connection = cn
cmd.CommandType = CommandType.TableDirect
cn.Open()
Dim rec As SqlCeUpdatableRecord
For i As Integer = 0 To 1000
If i = 0 Then
cmd.CommandText = "A"
cmd.CommandType = CommandType.TableDirect
rs = cmd.ExecuteResultSet(ResultSetOptions.Updatable)
rec = rs.CreateRecord()
End If
Try
DB.Insert(1, 2, rs, rec)
Catch ex As Exception
End Try
Next
这是db class
中的insert sub公共类Db
Public Shared Sub Insert(ByVal a As Integer, ByVal b As Integer, ByRef rs As SqlCeResultSet, ByRef rec As SqlCeUpdatableRecord)
Try
rec.SetValue(0, a)
rec.SetValue(1, If(b = String.Empty, DirectCast(DBNull.Value, Object), b))
rs.Insert(rec)
Catch ex As Exception
End Try
End Sub
结束课