# 给点意见吧Access and VB-ADO

Posted by 大汉堡 on July 25, 1999 at 03:01:55:

测试用Adodc连接有Password的Access Database 发现
ConnectString的Provider = Microsoft.Jet 3.51 OLEDB Provider
连不上,出现的Message我之前提出问过,但还不知Why,
但是现在我使用Provider=Microsoft OLEDB Provider for ODBC Drivers
就可顺利连上,所以顺道测试了一下两者速度的差异,如下:
统计环境:
AMD K6-2 350 CPU and 192M SDRAM
100000(10万)笔资料
本机Access97 database, OP is Win98
测试方式:
Private Sub Form_Activate()
Time1 = Timer
Set DataGrid1.DataSource = Adodc1
Adodc1.Refresh
Time2 = Timer
MsgBox Time2 - Time1
End Sub
A Datagrid and a Adodc Control
数据:
时间单位:Sec
---- Provider-----Microsoft Jet.3.51 ----------------------------------OLEDB Provider for ODBC Drivers
----CmdType----Table----------Order by-----------No order--------Table----------Order by----------No order----
No Inde----------2.75,2.51-----11.14,11.26--------2.79,2.62-------10.75,10.77---18.57,19.00------10.37,10.54
AdUsrServer

No Index--------11.26,10.65---27.01,28.17-------9.44,10.05------50.21,49.75---68.82,68.26------49.41,49.82
AdUsrClient

Index-------------2.14,2.08------2.08,2.08---------2.47,2.58--------10.53,10.71---15.00,15.54------10.92,10.66
AdUsrServer

Index-------------9.17,9.50------27.18,27.29------10.44,10.53-----50.68,49.88---68.37,68.51------48.93,48.43
AdUsrClient
测试方式:
Private Sub Form_Activate()
Time1 = Timer
Adodc1.Refresh
Time2 = Timer
MsgBox Time2 - Time1
End Sub
a Adodc Control

数据:
Provider-------Microsoft Jet.3.51---------------------------------OLEDB Provider for ODBC Drivers
CmdType-----Table----------Order by--------No order---------Table-----------Order by--------No order------
No Index----------------------3.95,4.01----------------------------0.22,0.22------4.50,4.61-------0.22,0.15---
AdUsrServer

No Index-----4.83,5.38------14.99,15.05----5.44,4.78---------25.76,26.29---35.76,34.87----26.42,25.76
AdUsrClient

Index-----------------------------------------------------------------0.22,0.28------0.22,0.22-------0.33,0.22--
AdUsrServer

Index----------4.06,4.15------13.02,13.02----4.06,3.84--------25.49,25.92---35.32,34.91----25.98,25.54
AdUsrClient
数据说话:
没有白吃的午餐,在功能强大的背后,要有牺牲速度的准备!!
1. 加不加索引没关系?! ODBC 显然无视Index的存在,
除了用CursorLocation = adUsrServer and Use SQL-Order by 索引的Field会加
快外,其余实在看不出啥不同
2. 牛牵到北京:CursorLocation = adUsrClient就算加了Index也丝毫不领情
3. 如果不使用Datagrid那么adUsrServer的确很惊人,量出数值已经不可靠
约<0.01
4. 两张表的Compare有个较好玩的事,就是在adUsrClient时,使用Datagrid和不
使用大约差了一倍时间,从CursorLocation的意义来看,Why??
5. 不使用Datagrid,则即使Provider用ODBC and adUsrServer也有不错的速度
这个数据希望对大家有用,有意见or 问题也请告知我

Follow Ups:

- 阿..数据都乱了,如果有人要,再Mail给你吧(无内文) 大汉堡 03:04:59 7/25/99 (0)