上次未解决问题(关于打开数据库的速度问题)!!!
...
strtnmtr = "select * from tnmtr where right(userid,6)='" & Right(rsTNCAL.Fields!userid, 6) & "'"
Set rsTNMTR = New ADODB.Recordset
rsTNMTR.CursorLocation = adUseClient
rsTNMTR.CursorType = adOpenStatic
rsTNMTR.LockType = adLockOptimistic
rsTNMTR.Open strtnmtr, MDBConn
...
当运行到这个时候(rsTNMTR.Open strtnmtr, MDBConn) 就会停留几秒 数据也只有20几万条 数据库为ACCESS
我也是需要里面的全部数据 并且还要做循环(根据条件每一条数据就需要打开一次数据库) 这样下来就特别慢
请问各位老鸟,我怎样才能将速度提起来呢(不修改数据库结构的情况下)?
问题点数:20、回复次数:8Top
1 楼yoki(小马哥--鬓微霜,又何妨)回复于 2003-11-01 11:01:03 得分 5
20几万条纪录用几秒正常呀Top
2 楼hlm750908(pro dog)回复于 2003-11-01 11:20:03 得分 2
正常
Top
3 楼zjcxc(邹建)回复于 2003-11-01 11:52:10 得分 5
正常现象.打开那么大的表是要那么长时间.你可以通过:
将数据改为SQL
升级你的电脑
来改善.Top
4 楼dengyiwolf(七星偃月刀)回复于 2003-11-01 12:24:30 得分 0
但是做了循环后 速度就慢多了,
for ..
...
(这中间也必须打开几张表)
for ..
....
(这中间也必须要打开好几张表.因为对方的数据放的特别乱)
next
next
这样下来将几千条数据 ACCESS转换成DBF 就需要将近15分钟
Top
5 楼dengyiwolf(七星偃月刀)回复于 2003-11-01 12:26:23 得分 0
请问像这样的转换时间谁能接受 包括我自己都不能接受 更不用说客户了...
请各位老鸟帮帮忙 分可以商量...Top
6 楼dengyiwolf(七星偃月刀)回复于 2003-11-01 14:48:57 得分 0
请问 小马哥(yoki)
作循环时(2000次)每次都要停留几秒... 这样下来将近要停留十五分钟这样的速度太慢了 求救....!!!!!Top
7 楼lizfhn(lzf)回复于 2003-11-01 17:02:45 得分 3
你用SQL可能会好点吧!Top
8 楼jjkk168(老加班的人--好好学习,天天吃饭)回复于 2003-11-01 17:29:52 得分 5
执行SQL时千万别在循环里面实现,那样速度慢真的是自找的。
你将所需要的内容在一个SQL语句里面实现,然后再去用代码进行取值。
如果实在不行,你先将记录读出来写入一个数组,再判断数组这样也快一点啊Top



