2009-11-02 73 views
0

我不明白为什么发送参数插入功能在.net紧凑框架中工作缓慢。在.Net紧凑框架中的性能问题

Forexample2秒

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 seconds.What确实性能降低内完成内以下代码插入?

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类插入子

公共类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 

末级

+0

2整数复制到堆栈? – 2009-11-02 18:53:57

+0

不必要的尝试/赶上? – 2009-11-02 18:55:07

+0

打破一个分析器,看看? – 2009-11-02 18:55:56

回答

0

我会仔细检查安装在设备上。混淆起来很容易。谷歌的新产品是SQL Server Compact。

由于microsoft决定更改移动/ CE空间中的所有内容的名称,因此无法搜索帮助。它是Windows CE,Pocket PC,Windows Mobile还是Phone 7?它是SQL CE还是Sql Server Compact“Arrgh”!

也许这些链接将有助于下一个家伙。 MSDN Blog或这个Technet