我正在使用ADODB.Connection对象“Provider = Microsoft.Jet.OLEDB.4.0; Data Source = test.mdb; Jet OLEDB:Database Password = test; Persist Security Info = False;”。
db_obj.Open(db_conn_string)的速度非常不同。
之后我使用了一个select语句。
我按速度检查每条线路。我唯一的减速是开放命令。
如何提高网络速度?
由于
答案 0 :(得分:0)
出于好奇,你为什么如此担心连接速度仅仅几秒之间的差异?
您是在创建这些连接并在整个代码中不断删除这些连接的问题,因此额外的一秒左右会增加几分钟吗?
如果是这样,您的目标可能需要改进您的连接使用本身。而不是不断地断开连接,可能只是让它保持活跃状态。
另外,在旁注中,您可能需要重新考虑将密码保存在连接字符串中(假设这不仅仅是个人用途或其他)。
除了这些之外,你的连接方法与从单一镜头角度来看一样好。
还有一些其他选项,例如将连接作为记录集打开,但速度在开放端不会有任何显着增加。
Dim rs1 As New ADODB.Recordset
Dim sConn As String
Dim sSQL As String
FilePath = "[File Location]"
sConn = "Provider=Microsoft.jet.oledb.4.0;Data source=" & _
FilePath & "\[DatabaseName].[Extension]"
conn.Open sConn
Set conn = CreateObject("ADODB.Connection")
Set rs1 = CreateObject("ADODB.Recordset")
sSQL = "SELECT * FROM Table1"
rs1.CursorLocation = adUseClient
rs1.Open sSQL, conn, adOpenDynamic, adLockPessimistic 'lock depending on user requirements
rs1.MoveFirst
Do While rs1.EOF = False
'Code here
rs1.MoveNext
Loop
'For additional manipulation
rs1.MoveFirst
Do While rs1.EOF = False
'Code here
rs1.MoveNext
Loop
rs1.Close
Set rs1 = Nothing
Set conn = Nothing
据我所知,除此之外,您唯一真正的解决方案是提高物理网络本身的速度(如果合理的话)。