首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

VB用ADO查询比较大的ACCESS数据库时死机有关问题怎么解决

2012-08-08 
VB用ADO查询比较大的ACCESS数据库时死机问题如何解决数据库比较大,几百兆,用ADO方法打开,由于数据库不是我

VB用ADO查询比较大的ACCESS数据库时死机问题如何解决
数据库比较大,几百兆,用ADO方法打开,由于数据库不是我建的,所以建议我建索引啊什么就别说了
查询语句挺简单的,不过使用了union all,就是几个类似这样的语句串起来 select count(aaa) form xxx where aaa>10

程序在查询的时候就死机了,DOEVENTS对于这样的一个rs.open完全无效,不存在循环。。。

当然了,大家理解了我要干什么,给点其它方面的建议也行,我要同时在一个比较大的数据库里统计出相应字段的情况,有什么好方法可以让程序不死机,难道不能用union all 来一起查询,要一个一个查询,然后doevents?那样太慢了吧

[解决办法]
是分段统计?

"SELECT DISTINCTROW Partition([aaa],0, 200, 10) AS Range, Count(aaa) As Count From xxx GROUP BY Partition([aaa],0,200,10)"


[解决办法]
rs.open xxxx ,cn ,1,1
试试看呢
[解决办法]
如果静态的 mdb 文件是几百兆,进行复杂查询时需要临时空间,可能就上 G 了。
上 G 的 mdb 会出各种莫名其妙的错误,这是硬伤,无解!
Access 不适合大数据场景,换数据库吧。
[解决办法]
1 doevents 是可以用在你的循环中,但你的查询就一个功能语句,在一个进程中,无法释放资源,死锁问题无法解决。。根本方法还是你的语句。和数据库,试试这条语句在ACCESS中执行看效率如何。再来优化程序!

2 还有就是ado 连接时,游标采用服务器端游标试试。
[解决办法]
分段查询,每次只查询其中一部分

热点排行