与后端相比,VB6 Recordset“Open”需要更多时间来显示结果

时间:2012-02-25 06:46:44

标签: vb6 recordset

我正在使用查询来查找数据。 相同的查询花费较少的时间,即从后端执行2秒。 但在代码相同的查询中花费更多的时间,即recordset.open中的30秒。 数据库:Sybase

由于

代码示例:

    Dim rsRoute As New ADODB.Recordset 
    ---------------------------------------------

    If rsRoute.State = 1 Then rsRoute.Close
    Set rsRoute = New ADODB.Recordset
    Set rsRoute.ActiveConnection = con
    rsRoute.CursorLocation = adUseClient
    rsRoute.CursorType = adOpenKeyset
    rsRoute.LockType = adLockBatchOptimistic
    strCmd = " select * from Table where CoumnVal =1 "
    con.Errors.Clear
    On Error Resume Next
    rsRoute.Open strCmd

1 个答案:

答案 0 :(得分:2)

有几种类型的CursorsType和两种不同的CursorLocation变种。在Sybase数据库(当天的ASE)中,性能根据您的选择而有很大差异。尝试客户端和服务器端游标,看看会发生什么。

如果您只需要遍历结果一次,请选择adOpenForwardOnly游标类型。它通常会带来最佳性能。

编辑:根据您发布的代码,尝试a)不锁定任何内容(例如LockType),b)使用adOpenForwardOnly游标,a)将光标保留在服务器上(adUseServer)