我正在使用查询来查找数据。 相同的查询花费较少的时间,即从后端执行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
答案 0 :(得分:2)
有几种类型的CursorsType和两种不同的CursorLocation变种。在Sybase数据库(当天的ASE)中,性能根据您的选择而有很大差异。尝试客户端和服务器端游标,看看会发生什么。
如果您只需要遍历结果一次,请选择adOpenForwardOnly游标类型。它通常会带来最佳性能。
编辑:根据您发布的代码,尝试a)不锁定任何内容(例如LockType),b)使用adOpenForwardOnly游标,a)将光标保留在服务器上(adUseServer)